diff -pru perl-5.8.7-min-patched/ext/Cwd/t/cwd.t perl-5.8.7-patched/ext/Cwd/t/cwd.t
--- perl-5.8.7-min-patched/ext/Cwd/t/cwd.t	Sun Apr  3 08:28:10 2005
+++ perl-5.8.7-patched/ext/Cwd/t/cwd.t	Mon Nov 27 20:59:04 2006
@@ -193,6 +193,9 @@ SKIP: {
   my $file;
   {
     my $root = File::Spec->rootdir;
+    my $abs_root = Cwd::abs_path($root);
+    $abs_root =~ /^([a-zA-Z]:)?\Q$root\E\z/ or skip("abs_dir($root) unexpected: '$abs_root'", 2+$EXTRA_ABSPATH_TESTS);
+    $root = $abs_root;
     local *FH;
     opendir FH, $root or skip("Can't opendir($root): $!", 2+$EXTRA_ABSPATH_TESTS);
     ($file) = grep {-f $_ and not -l $_} map File::Spec->catfile($root, $_), readdir FH;
diff -pru perl-5.8.7-min-patched/ext/IO/t/io_unix.t perl-5.8.7-patched/ext/IO/t/io_unix.t
--- perl-5.8.7-min-patched/ext/IO/t/io_unix.t	Sun Feb  1 05:30:14 2004
+++ perl-5.8.7-patched/ext/IO/t/io_unix.t	Mon Nov 27 20:59:06 2006
@@ -39,6 +39,13 @@ BEGIN {
 
 $PATH = "sock-$$";
 
+if ($^O eq 'os2') {	# Can't create sockets with relative path...
+  require Cwd;
+  my $d = Cwd::cwd();
+  $d =~ s/^[a-z]://i;
+  $PATH = "$d/$PATH";
+}
+
 # Test if we can create the file within the tmp directory
 if (-e $PATH or not open(TEST, ">$PATH") and $^O ne 'os2') {
     print "1..0 # Skip: cannot open '$PATH' for write\n";
diff -pru perl-5.8.7-min-patched/t/op/stat.t perl-5.8.7-patched/t/op/stat.t
--- perl-5.8.7-min-patched/t/op/stat.t	Thu Apr  7 09:07:50 2005
+++ perl-5.8.7-patched/t/op/stat.t	Mon Nov 27 20:59:12 2006
@@ -41,7 +41,7 @@ my $Curdir = File::Spec->curdir;
 my $tmpfile = 'Op_stat.tmp';
 my $tmpfile_link = $tmpfile.'2';
 
-
+chmod 0666, $tmpfile;
 1 while unlink $tmpfile;
 open(FOO, ">$tmpfile") || DIE("Can't open temp test file: $!");
 close FOO;
@@ -466,5 +466,6 @@ ok(unlink($f), 'unlink tmp file');
 }
 
 END {
+    chmod 0666, $tmpfile;
     1 while unlink $tmpfile;
 }
