diff --git a/src/signal_handler.c b/src/signal_handler.c
index bf02cefd9936525cc5588ef703ba5b4d2967acd6..52007e414d1e5dc0de9fc47247cf4cd68dd565b5 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -22,7 +22,7 @@
 #include "builtin_functions.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.44 1998/04/09 10:37:15 grubba Exp $");
+RCSID("$Id: signal_handler.c,v 1.45 1998/04/09 10:44:57 grubba Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -977,9 +977,9 @@ void f_create_process(INT32 args)
 	       ITEM(v)[e].type == T_STRING)
 	    {
 	      check_stack(3);
-	      push_string(ITEM(i)[e].u.string);
+	      ref_push_string(ITEM(i)[e].u.string);
 	      push_string(make_shared_string("="));
-	      push_string(ITEM(v)[e].u.string);
+	      ref_push_string(ITEM(v)[e].u.string);
 	      f_add(3);
 	      storage.env[ptr++]=sp[-1].u.string->str;
 	    }