--- toast	2003/11/29 00:18:29	1.252
+++ toast	2003/11/29 00:33:21	1.253
@@ -2556,6 +2556,14 @@
   return true;
 }
 
+sub fixrootsubdir($)
+{
+  my($dir) = @_;
+  my(undef, undef, $mode) = safestat($dir);
+  safechmod(0755, $dir) unless ($mode & 07777) == 0755;
+  return true;
+}
+
 sub fixrootlink($)
 {
   # XFree86 gets (understandably) confused by stdlinks and makes broken links
@@ -2584,7 +2592,7 @@
   dfs
   (
     $rootdir,
-    sub { $count{$_} = $total; true },
+    sub { $count{$_} = $total; fixrootsubdir($_) },
     sub { fixrootlink($_) if -l && !-e; ++$total },
     sub { $count{$_} < $total || rd($_) }
   );