diff --git a/src/normalise.cc b/src/normalise.cc
index 3d025d5f5aa134cbe50be9a1fad3b5885d660c32..ad79d83fc6705a77ffab421d3ab7584986c449ef 100644
--- a/src/normalise.cc
+++ b/src/normalise.cc
@@ -129,6 +129,11 @@ FSId normaliseFState(FSId id, FSIdSet pending)
     for (ElemMap::iterator i = inMap.begin(); i != inMap.end(); i++)
         refPaths.push_back(i->second.path);
 
+    /* Most shells initialise PATH to some default (/bin:/usr/bin:...) when
+       PATH is not set.  We don't want this, so we fill it in with some dummy
+       value. */
+    env["PATH"] = "/path-not-set";
+
     /* Build the environment. */
     for (StringPairs::iterator i = fs.derive.env.begin();
          i != fs.derive.env.end(); i++)