about summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/gc.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index ca16b6491009..fbf842350c74 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -473,7 +473,7 @@ bool LocalStore::tryToDelete(GCState & state, const Path & path)
             if (state.gcKeepDerivations && isDerivation(p)) {
                 PathSet outputs = queryDerivationOutputs(p);
                 foreach (PathSet::iterator, i, outputs)
-                    if (isValidPath(*i)) todo.insert(*i);
+                    if (isValidPath(*i) && queryDeriver(*i) == p) todo.insert(*i);
             }
             /* If gc-keep-outputs is set, then don't delete this path
                if there are derivers of this path that are not