diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index bea2926..d64077e 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -464,7 +464,9 @@ def stamp_internal(taskname, d, file_name):
 
     stamp = bb.parse.siggen.stampfile(stamp, file_name, taskname, extrainfo)
 
-    bb.utils.mkdirhier(os.path.dirname(stamp))
+    stampdir = os.path.dirname(stamp)
+    if bb.parse.cached_mtime_noerror == 0:
+        bb.utils.mkdirhier(stampdir)
 
     return stamp
 
