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;
