diff -urN busybox-1.7.2/shell/ash.c busybox-1.7.2-ash/shell/ash.c --- busybox-1.7.2/shell/ash.c 2007-09-03 12:48:38.000000000 +0100 +++ busybox-1.7.2-ash/shell/ash.c 2007-10-07 18:55:42.000000000 +0100 @@ -4379,6 +4379,7 @@ /* Lives far away from here, needed for forkchild */ static void closescript(void); + /* Called after fork(), in child */ static void forkchild(struct job *jp, union node *n, int mode) @@ -4423,15 +4424,8 @@ setsignal(SIGQUIT); setsignal(SIGTERM); } -#if JOBS - /* For "jobs | cat" to work like in bash, we must retain list of jobs - * in child, but we do need to remove ourself */ - if (jp) - freejob(jp); -#else for (jp = curjob; jp; jp = jp->prev_job) freejob(jp); -#endif jobless = 0; }