What follows is a patch for pidwait() which removes the WUNTRACED flag from the waitpid() call. Given that pidwait is supposed to return when the child exits, it shouldn't be returning when the child is just suspended. I'm not sure how that got into the code... and I'm not terribly familiar with mh's source. So maybe you should submit this to whomever works on it since I doubt it's just a linux problem. To see this bug in action use comp with vi (vim or elvis) or ed. Then do ^Z/fg several times and eventually comp will think the editor died and it will exit for no good reason. This is based on mh-6.8.4-2 from ftp.debian.org somewhere. Dean *** mh-6.8.4/sbr/pidwait.c.dist Tue Nov 30 20:01:26 1993 --- mh-6.8.4/sbr/pidwait.c Sat Dec 21 17:24:11 1996 *************** *** 33,39 **** } #ifdef SVR4 ! pid = waitpid (id, &status, WUNTRACED); #else while ((pid = wait (&status)) != NOTOK && pid != id) continue; --- 33,39 ---- } #ifdef SVR4 ! pid = waitpid (id, &status, 0); #else while ((pid = wait (&status)) != NOTOK && pid != id) continue;