diff -uNr apache_1.3.28.orig/src/main/alloc.c apache_1.3.28/src/main/alloc.c --- apache_1.3.28.orig/src/main/alloc.c 2003-06-20 11:05:40.000000000 -0400 +++ apache_1.3.28/src/main/alloc.c 2003-09-26 23:48:14.000000000 -0400 @@ -2858,13 +2858,14 @@ for (p = procs; p; p = p->next) { if ((p->kill_how == kill_after_timeout) || (p->kill_how == kill_only_once)) { - /* Subprocess may be dead already. Only need the timeout if not. */ - if (ap_os_kill(p->pid, SIGTERM) == -1) { - p->kill_how = kill_never; - } - else { - need_timeout = 1; - } + /* + * This is totally bogus, but seems to be the + * only portable (as in reliable) way to accomplish + * this. Note that this implies an unavoidable + * delay. + */ + ap_os_kill(p->pid, SIGTERM); + need_timeout = 1; } else if (p->kill_how == kill_always) { kill(p->pid, SIGKILL);