diff --git a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
index c759d78..ea27dca 100644
--- a/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
+++ b/src/main/java/org/apache/maven/shared/dependency/tree/DependencyNode.java
@@ -774,11 +774,12 @@
     {
         int hashCode = 1;
         
-        hashCode = hashCode * 31 + nullHashCode( getParent() );
         hashCode = hashCode * 31 + getArtifact().hashCode();
-        
         // DefaultArtifact.hashCode does not consider scope
         hashCode = hashCode * 31 + nullHashCode( getArtifact().getScope() );
+
+        // TODO: use parent's artifact to prevent recursion - how can we improve this?
+        hashCode = hashCode * 31 + nullHashCode( nullGetArtifact( getParent() ) );
         
         hashCode = hashCode * 31 + getChildren().hashCode();
         hashCode = hashCode * 31 + getState();
@@ -805,12 +806,13 @@
         {
             DependencyNode node = (DependencyNode) object;
 
-            // TODO: no parent.equals() to prevent recursion
             equal = getArtifact().equals( node.getArtifact() );
-            
             // DefaultArtifact.hashCode does not consider scope
             equal &= nullEquals( getArtifact().getScope(), node.getArtifact().getScope() );
             
+            // TODO: use parent's artifact to prevent recursion - how can we improve this?
+            equal &= nullEquals( nullGetArtifact( getParent() ), nullGetArtifact( node.getParent() ) );
+            
             equal &= getChildren().equals( node.getChildren() );
             equal &= getState() == node.getState();
             equal &= nullEquals( getRelatedArtifact(), node.getRelatedArtifact() );
@@ -885,4 +887,16 @@
     {
         return ( a == null ? b == null : a.equals( b ) );
     }
+    
+    /**
+     * Gets the artifact for the specified node.
+     * 
+     * @param node
+     *            the dependency node, possibly <code>null</code>
+     * @return the node's artifact, or <code>null</code> if the specified node was <code>null</code>
+     */
+    private static Artifact nullGetArtifact( DependencyNode node )
+    {
+        return ( node != null ) ? node.getArtifact() : null;
+    }
 }
