--- src/cmd/ksh93/sh/jobs.c~ 2007-07-03 19:27:28.000000000 -0700 +++ src/cmd/ksh93/sh/jobs.c 2007-07-03 19:28:02.000000000 -0700 @@ -36,7 +36,7 @@ #include "jobs.h" #include "history.h" -#if !defined(WCONTINUED) || !defined(WIFCONTINUED) +#if !defined(WCONTINUED) || !defined(WIFCONTINUED) || defined(__APPLE__) # undef WCONTINUED # define WCONTINUED 0 # undef WIFCONTINUED @@ -1440,7 +1443,7 @@ static struct process *job_unpost(regist if(pw) return(pw); /* all processes complete, unpost job */ - job_unlink(pwtop); + if (pwtop) job_unlink(pwtop); for(pw=pwtop; pw; pw=pw->p_nxtproc) { /* save the exit status for background jobs */ @@ -1469,7 +1472,7 @@ static struct process *job_unpost(regist sfprintf(sfstderr,"ksh: job line %4d: free pid=%d critical=%d job=%d\n",__LINE__,getpid(),job.in_critical,pwtop->p_job); sfsync(sfstderr); #endif /* DEBUG */ - job_free((int)pwtop->p_job); + if (pwtop) job_free((int)pwtop->p_job); return((struct process*)0); }