e6a2505
diff -dur gcl-2.6.8.ORIG/o/run_process.c gcl-2.6.8/o/run_process.c
e6a2505
--- gcl-2.6.8.ORIG/o/run_process.c	2006-09-15 11:45:18.000000000 -0600
e6a2505
+++ gcl-2.6.8/o/run_process.c	2008-12-29 17:22:10.000000000 -0700
e6a2505
@@ -526,10 +526,10 @@
e6a2505
   fdout = ostream->sm.sm_int0;
e6a2505
   if (fork() == 0)
e6a2505
     { /* the child --- replace standard in and out with descriptors given */
e6a2505
-      close(0);
e6a2505
-      dup(fdin);
e6a2505
-      close(1);
e6a2505
-      dup(fdout);
e6a2505
+      dup2(fdin, 0);
e6a2505
+      dup2(fdout, 1);
e6a2505
+      close(fdin);
e6a2505
+      close(fdout);
e6a2505
       fprintf(stderr, "\n***** Spawning process %s ", pname);
e6a2505
       if (execvp(pname, argv) == -1)
e6a2505
 	{