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) {