--- ./os2/os2.c-pre	Sun Jun 15 12:14:24 2003
+++ ./os2/os2.c	Sat Sep 13 14:26:24 2003
@@ -2949,11 +2949,11 @@ XS(XS_Cwd_sys_cwd)
 XS(XS_Cwd_sys_abspath)
 {
     dXSARGS;
-    if (items < 1 || items > 2)
-	Perl_croak_nocontext("Usage: Cwd::sys_abspath(path, dir = NULL)");
+    if (items > 2)
+	Perl_croak_nocontext("Usage: Cwd::sys_abspath(path = '.', dir = NULL)");
     {
 	STRLEN n_a;
-	char *	path = (char *)SvPV(ST(0),n_a);
+	char *	path = items ? (char *)SvPV(ST(0),n_a) : ".";
 	char *	dir, *s, *t, *e;
 	char p[MAXPATHLEN];
 	char *	RETVAL;
@@ -3073,6 +3073,10 @@ XS(XS_Cwd_sys_abspath)
 	    *t = 0;
 	    SvCUR_set(sv, t - SvPVX(sv));
 	}
+#ifndef INCOMPLETE_TAINTS
+	if (!items)
+	    SvTAINTED_on(ST(0));
+#endif
     }
     XSRETURN(1);
 }
--- ./t/run/switches.t-pre	Sun Aug 31 09:58:48 2003
+++ ./t/run/switches.t	Sat Sep 13 13:47:48 2003
@@ -231,7 +231,7 @@ SWTESTPM
     local $TODO = '';   # these ones should work on VMS
 
     like( runperl( switches => ['-h'] ),
-	  qr/Usage: .+perl.+switches.+programfile.+arguments/,
+	  qr/Usage: .+(?i:perl(\.exe)?).+switches.+programfile.+arguments/,
           '-h looks okay' );
 
 }
