jvdias f8d4d03
--- perl-5.8.7/pp_sort.c.bz172587	2005-04-08 05:31:47.000000000 -0400
jvdias f8d4d03
+++ perl-5.8.7/pp_sort.c	2005-11-07 12:57:07.000000000 -0500
jvdias f8d4d03
@@ -1510,6 +1510,7 @@
jvdias f8d4d03
 
jvdias f8d4d03
     if (gimme != G_ARRAY) {
jvdias f8d4d03
 	SP = MARK;
jvdias f8d4d03
+	EXTEND(SP,1);
jvdias f8d4d03
 	RETPUSHUNDEF;
jvdias f8d4d03
     }
jvdias f8d4d03
 
jvdias f8d4d03
--- perl-5.8.7/pp_hot.c.bz172587	2005-04-22 10:12:27.000000000 -0400
jvdias f8d4d03
+++ perl-5.8.7/pp_hot.c	2005-11-07 12:55:16.000000000 -0500
jvdias f8d4d03
@@ -639,12 +639,12 @@
jvdias f8d4d03
 	}
jvdias f8d4d03
     }
jvdias f8d4d03
     SP = ORIGMARK;
jvdias f8d4d03
-    PUSHs(&PL_sv_yes);
jvdias f8d4d03
+    XPUSHs(&PL_sv_yes);
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 
jvdias f8d4d03
   just_say_no:
jvdias f8d4d03
     SP = ORIGMARK;
jvdias f8d4d03
-    PUSHs(&PL_sv_undef);
jvdias f8d4d03
+    XPUSHs(&PL_sv_undef);
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 }
jvdias f8d4d03
 
jvdias f8d4d03
--- perl-5.8.7/pp_sys.c.bz172587	2005-04-27 18:12:46.000000000 -0400
jvdias f8d4d03
+++ perl-5.8.7/pp_sys.c	2005-11-07 13:03:39.000000000 -0500
jvdias f8d4d03
@@ -429,13 +429,16 @@
jvdias f8d4d03
     SV *tmpsv;
jvdias f8d4d03
     char *tmps;
jvdias f8d4d03
     STRLEN len;
jvdias f8d4d03
-    if (SP - MARK != 1) {
jvdias f8d4d03
+    if (SP - MARK > 1) {
jvdias f8d4d03
 	dTARGET;
jvdias f8d4d03
 	do_join(TARG, &PL_sv_no, MARK, SP);
jvdias f8d4d03
 	tmpsv = TARG;
jvdias f8d4d03
 	SP = MARK + 1;
jvdias f8d4d03
-    }
jvdias f8d4d03
-    else {
jvdias f8d4d03
+    } 
jvdias f8d4d03
+    else if (SP == MARK ) {
jvdias f8d4d03
+	tmpsv = &PL_sv_no;
jvdias f8d4d03
+	EXTEND(SP, 1);
jvdias f8d4d03
+    } else {
jvdias f8d4d03
 	tmpsv = TOPs;
jvdias f8d4d03
     }
jvdias f8d4d03
     tmps = SvPV(tmpsv, len);
jvdias f8d4d03
@@ -3517,7 +3520,7 @@
jvdias f8d4d03
     I32 value = (I32)apply(PL_op->op_type, MARK, SP);
jvdias f8d4d03
 
jvdias f8d4d03
     SP = MARK;
jvdias f8d4d03
-    PUSHi(value);
jvdias f8d4d03
+    XPUSHi(value);
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 #else
jvdias f8d4d03
     DIE(aTHX_ PL_no_func, "chown");
jvdias f8d4d03
@@ -4127,7 +4130,7 @@
jvdias f8d4d03
 	    if (errno != EAGAIN) {
jvdias f8d4d03
 		value = -1;
jvdias f8d4d03
 		SP = ORIGMARK;
jvdias f8d4d03
-		PUSHi(value);
jvdias f8d4d03
+		XPUSHi(value);
jvdias f8d4d03
 		if (did_pipes) {
jvdias f8d4d03
 		    PerlLIO_close(pp[0]);
jvdias f8d4d03
 		    PerlLIO_close(pp[1]);
jvdias f8d4d03
@@ -4176,7 +4179,7 @@
jvdias f8d4d03
 		    STATUS_CURRENT = -1;
jvdias f8d4d03
 		}
jvdias f8d4d03
 	    }
jvdias f8d4d03
-	    PUSHi(STATUS_CURRENT);
jvdias f8d4d03
+	    XPUSHi(STATUS_CURRENT);
jvdias f8d4d03
 	    RETURN;
jvdias f8d4d03
 	}
jvdias f8d4d03
 	if (did_pipes) {
jvdias f8d4d03
@@ -4222,7 +4225,7 @@
jvdias f8d4d03
     STATUS_NATIVE_SET(value);
jvdias f8d4d03
     do_execfree();
jvdias f8d4d03
     SP = ORIGMARK;
jvdias f8d4d03
-    PUSHi(result ? value : STATUS_CURRENT);
jvdias f8d4d03
+    XPUSHi(result ? value : STATUS_CURRENT);
jvdias f8d4d03
 #endif /* !FORK or VMS */
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 }
jvdias f8d4d03
@@ -4275,7 +4278,7 @@
jvdias f8d4d03
     }
jvdias f8d4d03
 
jvdias f8d4d03
     SP = ORIGMARK;
jvdias f8d4d03
-    PUSHi(value);
jvdias f8d4d03
+    XPUSHi(value);
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 }
jvdias f8d4d03
 
jvdias f8d4d03
--- perl-5.8.7/pp.c.bz172587	2005-05-16 11:30:13.000000000 -0400
jvdias f8d4d03
+++ perl-5.8.7/pp.c	2005-11-07 12:56:32.000000000 -0500
jvdias f8d4d03
@@ -721,7 +721,7 @@
jvdias f8d4d03
     while (MARK < SP)
jvdias f8d4d03
 	do_chop(TARG, *++MARK);
jvdias f8d4d03
     SP = ORIGMARK;
jvdias f8d4d03
-    PUSHTARG;
jvdias f8d4d03
+    XPUSHTARG;
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 }
jvdias f8d4d03
 
jvdias f8d4d03
@@ -739,7 +739,7 @@
jvdias f8d4d03
 
jvdias f8d4d03
     while (SP > MARK)
jvdias f8d4d03
 	count += do_chomp(POPs);
jvdias f8d4d03
-    PUSHi(count);
jvdias f8d4d03
+    XPUSHi(count);
jvdias f8d4d03
     RETURN;
jvdias f8d4d03
 }
jvdias f8d4d03