I found a small bug in the Unstow function: a message when a directory cannot be opened refers to $dir when it should refer to $targetdir. I also think that it could be useful not to consider inability to read a single directory while unstowing fatal. When there are multiple users without root privileges sharing a common stow tree such mistakes happen all too often but that should not prevent each of them from removing packages they manage. The following patch (against stow-1.3.2) implements suggested changes. --- stow.in.orig Fri Aug 23 22:05:01 1996 +++ stow.in Thu Feb 13 22:43:28 1997 @@ -184,8 +184,10 @@ return (0, '') if (-e &JoinPaths($Target, $targetdir, '.stow')); warn sprintf("Unstowing in %s\n", &JoinPaths($Target, $targetdir)) if ($Verbose > 1); - opendir(DIR, &JoinPaths($Target, $targetdir)) || - die "$ProgramName: Cannot read directory \"$dir\" ($!)\n"; + if (!opendir(DIR, &JoinPaths($Target, $targetdir))) { + warn "Warning: cannot read directory \"$targetdir\" ($!)\n"; + return (0, ''); + } @contents = readdir(DIR); closedir(DIR); foreach $content (@contents) {