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;
 }
 
