diff --git a/lib/master.pike.in b/lib/master.pike.in
index 15839b0976716fdfe505fa0bf2012ba6c05c7d35..e5de4fc7d069bb5beb116c830c8b25be643df77a 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -788,7 +788,19 @@ string combine_path_with_cwd(string ... paths)
   return combine_path(IS_ABSOLUTE_PATH(paths[0])?"":getcwd(),@paths);
 }
 
-#ifdef FILE_STAT_CACHE
+#if defined(PIKE_FAKEROOT)
+ 
+array(string) master_get_dir(string|void x)
+{
+  return get_dir(fakeroot(x));
+}
+ 
+Stat master_file_stat(string x)
+{
+  return predef::file_stat(fakeroot(x));
+}
+ 
+#elseif defined(FILE_STAT_CACHE)
 
 #define FILE_STAT_CACHE_TIME 20
 
@@ -834,11 +846,11 @@ Stat master_file_stat(string x)
   if(d && !d[file]) return 0;
 
   return predef::file_stat(x);
-}
+
 #else
 constant master_file_stat = predef::file_stat;
 constant master_get_dir = predef::get_dir;
-#endif // FILE_STAT_CACHE
+#endif // PIKE_FAKEROOT || FILE_STAT_CACHE
 
 
 protected mapping(string:string) environment;