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