--- ./lib/File/Find.pm-bad	Tue Dec 23 06:04:04 2003
+++ ./lib/File/Find.pm	Tue Dec 23 07:05:06 2003
@@ -610,7 +610,7 @@ sub _find_opt {
 		if ( (-d _) && ( $top_item !~ /:/ ) );
 	}
 	else {
-	    $top_item =~ s|/\z|| unless $top_item eq '/';
+	    $top_item =~ s|/\z|| unless $top_item =~ m<^([a-z]{1,2}:)?/\z>i;
 	    ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
 	}
 
@@ -751,7 +751,7 @@ sub _find_dir($$$) {
 	$dir_pref= ($p_dir =~ /:$/) ? $p_dir : "$p_dir:"; # preface
     }
     else {
-	$dir_pref= ( $p_dir eq '/' ? '/' : "$p_dir/" );
+	$dir_pref= ( $p_dir =~ m,/\z, ? $p_dir : "$p_dir/" );
     }
 
     local ($dir, $name, $prune, *DIR);
@@ -919,7 +919,7 @@ sub _find_dir($$$) {
 		$dir_pref = "$dir_name:";
 	    }
 	    else {
-		$dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
+		$dir_name = ($p_dir =~ m</\z> ? "$p_dir$dir_rel" : "$p_dir/$dir_rel");
 		$dir_pref = "$dir_name/";
 	    }
 
@@ -985,8 +985,8 @@ sub _find_dir_symlnk($$$) {
 	$dir_pref = ($p_dir =~ /:$/) ? "$p_dir" : "$p_dir:";
 	$loc_pref = ($dir_loc =~ /:$/) ? "$dir_loc" : "$dir_loc:";
     } else {
-	$dir_pref = ( $p_dir   eq '/' ? '/' : "$p_dir/" );
-	$loc_pref = ( $dir_loc eq '/' ? '/' : "$dir_loc/" );
+	$dir_pref = ( $p_dir   =~ m,/\z, ? $p_dir : "$p_dir/" );
+	$loc_pref = ( $dir_loc =~ m,/\z, ? $dir_loc : "$dir_loc/" );
     }
 
     local ($dir, $name, $fullname, $prune, *DIR);
@@ -1108,7 +1108,7 @@ sub _find_dir_symlnk($$$) {
 		$loc_pref = ($dir_loc =~ /:$/) ? $dir_loc : "$dir_loc:";
 	    }
 	    else {
-		$dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
+		$dir_name = ($p_dir =~ m,/\z, ? "$p_dir$dir_rel" : "$p_dir/$dir_rel");
 		$dir_pref = "$dir_name/";
 		$loc_pref = "$dir_loc/";
 	    }
