diff --unified --recursive --unidirectional-new-file --ignore-space-change ../csh.old/Makefile ./Makefile
--- ../csh.old/Makefile	Thu Jan  7 16:29:28 1993
+++ ./Makefile	Sat Nov  6 15:45:01 1993
@@ -5,7 +5,7 @@
 #
 # Linux changes by Ken Clark 1/6/93
 
-CFLAGS	= -O3 -s -fstrength-reduce -DFILEC -DNLS \
+CFLAGS	= -O6 -s -fstrength-reduce -DFILEC -DNLS \
 	  -DSHORT_STRINGS -D__USE_BSD -D__USE_BSD_SIGNAL -I.
 # I wanted -fwritable-strings but GCC complained.  Why?  Seems it is not
 # needed anyway.
diff --unified --recursive --unidirectional-new-file --ignore-space-change ../csh.old/proc.c ./proc.c
--- ../csh.old/proc.c	Wed Jan  6 17:27:30 1993
+++ ./proc.c	Mon Nov  8 00:22:21 1993
@@ -1280,16 +1280,14 @@
      * background jobs process groups Same for the comparison in the other part
      * of the #ifdef
      */
-    if (wanttty >= 0)
-	if (setpgid(0, pgrp) == -1) {
-	    xprintf("csh: setpgid error.\n");
+    if (wanttty >= 0) {
+	if (setpgid(0, pgrp) == -1 && errno != EPERM) {
+	           xprintf("csh: setpgid error.%d %d\n",pgrp,errno);
 	    xexit(0);
-	}
-
-    if (wanttty > 0) {
+	};
 	(void) tcsetpgrp(FSHTTY, pgrp);
 	(void) sigsetmask(omask);
-    }
+    };
 
     if (tpgrp > 0)
 	tpgrp = 0;		/* gave tty away */
