diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index e71201785e1d395e1e263a957d337a07b6dfa0b5..1aa3e37babd87711ad216cef10ea02be1aaf8e23 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -903,15 +903,15 @@ bool DerivationGoal::prepareBuild()
                     % drvPath % *j % i->first);
     }
 
-    debug(format("added input paths %1%") % showPaths(inputPaths));
-
-    allPaths.insert(inputPaths.begin(), inputPaths.end());
-
     /* Second, the input sources. */
     for (PathSet::iterator i = drv.inputSrcs.begin();
          i != drv.inputSrcs.end(); ++i)
         computeFSClosure(*i, inputPaths);
 
+    debug(format("added input paths %1%") % showPaths(inputPaths));
+
+    allPaths.insert(inputPaths.begin(), inputPaths.end());
+
     return true;
 }
 
diff --git a/src/libstore/references.cc b/src/libstore/references.cc
index 5ceae64276176bae5350ec6aa32aeae63a802778..843aed97fc3b8b2e96a1c79a4899a44615e3db3b 100644
--- a/src/libstore/references.cc
+++ b/src/libstore/references.cc
@@ -34,6 +34,8 @@ void checkPath(const string & path,
 {
     checkInterrupt();
     
+    debug(format("checking `%1%'") % path);
+
     struct stat st;
     if (lstat(path.c_str(), &st))
         throw SysError(format("getting attributes of path `%1%'") % path);
@@ -48,8 +50,6 @@ void checkPath(const string & path,
 
     else if (S_ISREG(st.st_mode)) {
         
-        debug(format("checking `%1%'") % path);
-
         AutoCloseFD fd = open(path.c_str(), O_RDONLY);
         if (fd == -1) throw SysError(format("opening file `%1%'") % path);