--- ./t/run/runenv.t-pre	Sat Nov  9 12:12:30 2002
+++ ./t/run/runenv.t	Mon Nov 18 22:20:48 2002
@@ -35,6 +35,10 @@ sub runperl {
 
   $stdout = '' unless defined $stdout;
   $stderr = '' unless defined $stderr;
+  local %ENV = %ENV;
+  delete $ENV{PERLLIB};
+  delete $ENV{PERL5LIB};
+  delete $ENV{PERL5OPT};
   my $pid = fork;
   return (0, "Couldn't fork: $!") unless defined $pid;   # failure
   if ($pid) {                   # parent
@@ -145,22 +149,22 @@ try({PERL5OPT => '-t'},
     '1',
     '');
 
-try({PERLLIB => "foobar:42"},
+try({PERLLIB => "foobar$Config{path_sep}42"},
     ['-e', 'print grep { $_ eq "foobar" } @INC'],
     'foobar',
     '');
 
-try({PERLLIB => "foobar:42"},
+try({PERLLIB => "foobar$Config{path_sep}42"},
     ['-e', 'print grep { $_ eq "42" } @INC'],
     '42',
     '');
 
-try({PERL5LIB => "foobar:42"},
+try({PERL5LIB => "foobar$Config{path_sep}42"},
     ['-e', 'print grep { $_ eq "foobar" } @INC'],
     'foobar',
     '');
 
-try({PERL5LIB => "foobar:42"},
+try({PERL5LIB => "foobar$Config{path_sep}42"},
     ['-e', 'print grep { $_ eq "42" } @INC'],
     '42',
     '');
--- ./os2/os2.c-pre	Fri Jul 19 16:50:02 2002
+++ ./os2/os2.c	Mon Nov 18 22:41:02 2002
@@ -2795,18 +2795,30 @@ my_tmpfile ()
 
 #undef rmdir
 
+/* EMX flavors do not tolerate trailing slashes.  t/op/mkdir.t has many
+   trailing slashes, so we need to support this as well. */
+
 int
 my_rmdir (__const__ char *s)
 {
-    char buf[MAXPATHLEN];
+    char b[MAXPATHLEN];
+    char *buf = b;
     STRLEN l = strlen(s);
+    int rc;
 
-    if (s[l-1] == '/' || s[l-1] == '\\') {	/* EMX rmdir fails... */
+    if (s[l-1] == '/' || s[l-1] == '\\') {	/* EMX mkdir fails... */
+	if (l >= sizeof b)
+	    New(1305, buf, l + 1, char);
 	strcpy(buf,s);
-	buf[l - 1] = 0;
+	while (l > 1 && (s[l-1] == '/' || s[l-1] == '\\'))
+	    l--;
+	buf[l] = 0;
 	s = buf;
     }
-    return rmdir(s);
+    rc = rmdir(s);
+    if (b != buf)
+	Safefree(buf);
+    return rc;
 }
 
 #undef mkdir
@@ -2814,15 +2826,24 @@ my_rmdir (__const__ char *s)
 int
 my_mkdir (__const__ char *s, long perm)
 {
-    char buf[MAXPATHLEN];
+    char b[MAXPATHLEN];
+    char *buf = b;
     STRLEN l = strlen(s);
+    int rc;
 
     if (s[l-1] == '/' || s[l-1] == '\\') {	/* EMX mkdir fails... */
+	if (l >= sizeof b)
+	    New(1305, buf, l + 1, char);
 	strcpy(buf,s);
-	buf[l - 1] = 0;
+	while (l > 1 && (s[l-1] == '/' || s[l-1] == '\\'))
+	    l--;
+	buf[l] = 0;
 	s = buf;
     }
-    return mkdir(s, perm);
+    rc = mkdir(s, perm);
+    if (b != buf)
+	Safefree(buf);
+    return rc;
 }
 
 #undef flock
--- ./lib/ExtUtils/MakeMaker.pm-pre	Fri Jul 19 16:49:46 2002
+++ ./lib/ExtUtils/MakeMaker.pm	Mon Nov 18 23:44:58 2002
@@ -883,7 +883,10 @@ sub flush {
 
     close FH;
     my($finalname) = $self->{MAKEFILE};
-    rename("MakeMaker.tmp", $finalname);
+    # die() no good: may be eval'ed and silenced...
+    chmod 0666, $finalname;
+    unlink $finalname;
+    rename("MakeMaker.tmp", $finalname) or warn "rename `MakeMaker.tmp' => `$finalname': $!";
     chmod 0644, $finalname unless $Is_VMS;
 
     if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
--- ./lib/ExtUtils/MANIFEST.SKIP-pre	Fri Jul 19 16:49:46 2002
+++ ./lib/ExtUtils/MANIFEST.SKIP	Tue Nov 19 00:05:50 2002
@@ -4,14 +4,14 @@
 ,v$
 
 # Avoid Makemaker generated and utility files.
-^MANIFEST\.bak
-^Makefile$
-^blib/
-^MakeMaker-\d
-^pm_to_blib$
+(^|[\\/])MANIFEST\.bak
+(^|[\\/])Makefile$
+(^|[\\/])blib/
+(^|[\\/])MakeMaker-\d
+(^|[\\/])pm_to_blib$
 
 # Avoid temp and backup files.
 ~$
 \.old$
 \#$
-^\.#
+(^|[\\/])\.#
--- ./lib/ExtUtils/t/basic.t-pre	Fri Jul 19 16:49:46 2002
+++ ./lib/ExtUtils/t/basic.t	Mon Nov 18 23:27:24 2002
@@ -95,17 +95,17 @@ END { unlink 'MANIFEST'; }
 
 my $test_out = `$make test`;
 like( $test_out, qr/All tests successful/, 'make test' );
-is( $?, 0 );
+is( $?, 0, '  exit code' );
 
 # Test 'make test TEST_VERBOSE=1'
 my $make_test_verbose = make_macro($make, 'test', TEST_VERBOSE => 1);
 $test_out = `$make_test_verbose`;
 like( $test_out, qr/ok \d+ - TEST_VERBOSE/, 'TEST_VERBOSE' );
 like( $test_out, qr/All tests successful/, '  successful' );
-is( $?, 0 );
+is( $?, 0, '  exit code' );
 
-my $dist_test_out = `$make disttest`;
+my $dist_test_out = `$make disttest 2>&1`;
 is( $?, 0, 'disttest' ) || diag($dist_test_out);
 
 
 # Make sure init_dirscan doesn't go into the distdir
--- ./ext/DB_File/t/db-hash.t-pre	Sun Nov  3 22:34:34 2002
+++ ./ext/DB_File/t/db-hash.t	Tue Nov 19 01:35:40 2002
@@ -937,6 +937,7 @@ ok(128,1);
     ok(137, $warn_count == 0);
     $warn_count = 0;
 
+    untie %hash1;
     unlink $Dfile;
 }
 
--- ./lib/AutoLoader.t-pre	Sun Nov  3 22:34:38 2002
+++ ./lib/AutoLoader.t	Tue Nov 19 01:57:30 2002
@@ -130,5 +130,5 @@ package main;
 # cleanup
 END {
 	return unless $dir && -d $dir;
-	rmtree $fulldir;
+	rmtree $dir;
 }
