diff --git a/src/nix-store/dotgraph.cc b/src/nix-store/dotgraph.cc
index fa8d353bc..1d8ebfbd0 100644
--- a/src/nix-store/dotgraph.cc
+++ b/src/nix-store/dotgraph.cc
@@ -108,8 +108,10 @@ void printDotGraph(const PathSet & roots)
         for (PathSet::iterator i = references.begin();
              i != references.end(); ++i)
         {
-            workList.insert(*i);
-            cout << makeEdge(*i, path);
+            if (*i != path) {
+                workList.insert(*i);
+                cout << makeEdge(*i, path);
+            }
         }