diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
index 9e736b2..fdaae0a 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
@@ -109,14 +109,14 @@
   }
 
   private String getFullArtifactName(Artifact artifact){
-    return artifact.getGroupId() + ":" + artifact.getArtifactId() + artifact.getVersion();
+    return artifact.getGroupId() + ":" + artifact.getArtifactId() +":"+ artifact.getVersion();
   }
   
   private StringBuilder buildTreeString(DependencyNode node) {
     List<String> loc = new ArrayList<String>();
     DependencyNode currentNode = node;
     while (currentNode != null) {
-      loc.add(getFullArtifactName(node.getArtifact()));
+      loc.add(getFullArtifactName(currentNode.getArtifact()));
       currentNode = currentNode.getParent();
     }
     Collections.reverse(loc);
@@ -145,7 +145,7 @@
     if (nodeList.size() > 0){
       builder.append(buildTreeString(nodeList.get(0)));
     }
-    for (DependencyNode node: nodeList){
+    for (DependencyNode node: nodeList.subList(1,nodeList.size())){
       builder.append("and\n");
       builder.append(buildTreeString(node));
     }
diff --git a/enforcer-rules/src/site/apt/dependencyConvergence.apt.vm b/enforcer-rules/src/site/apt/dependencyConvergence.apt.vm
index 1136773..6c8691a 100644
--- a/enforcer-rules/src/site/apt/dependencyConvergence.apt.vm
+++ b/enforcer-rules/src/site/apt/dependencyConvergence.apt.vm
@@ -22,7 +22,7 @@
  2008-09-13
  -----
 
-  This rule requires that dependency version numbers converge.  If it has two dependencies, A and B, both depending on the same artifact, c, this rule will fail the build if A depends on a different version of C then the version of C depended on by B.
+  This rule requires that dependency version numbers converge.  If a project has two dependencies, A and B, both depending on the same artifact, C, this rule will fail the build if A depends on a different version of C then the version of C depended on by B.
 
   Here is a concrete example.
 
@@ -49,13 +49,16 @@
 -----------------------------------------------------------------------------------
 Dependency convergence error for org.slf4j:slf4j-api1.6.1 paths to dependency are:
 
-+-org.slf4j:slf4j-api1.6.1
-  +-org.slf4j:slf4j-api1.6.1
-    +-org.slf4j:slf4j-api1.6.1
+[ERROR]
+Dependency convergence error for org.slf4j:slf4j-api:1.6.1 paths to dependency are:
++-org.myorg:my-project:1.0.0-SNAPSHOT
+  +-org.slf4j:slf4j-jdk14:1.6.1
+    +-org.slf4j:slf4j-api:1.6.1
 and
-+-org.slf4j:slf4j-api1.6.0
-  +-org.slf4j:slf4j-api1.6.0
-    +-org.slf4j:slf4j-api1.6.0
++-org.myorg:my-project:1.0.0-SNAPSHOT
+  +-org.slf4j:slf4j-nop:1.6.0
+    +-org.slf4j:slf4j-api:1.6.0
+
 
 -----------------------------------------------------------------------------------
 
