The last fix had a simple mistake: Good logic was inadvertently trapped inside "if (ap_extended_status)", so a bunch of "Bad pid" messages could show up at termination for folks with the default (off) setting for ExtendedStatus.
Proposed fix: Index: src/main/http_main.c =================================================================== --- src/main/http_main.c (revision 594940) +++ src/main/http_main.c (working copy) @@ -2661,7 +2661,6 @@ if (status == SERVER_DEAD) { ss->my_access_count = 0L; ss->my_bytes_served = 0L; - ap_scoreboard_image->parent[child_num].pid = 0; } ss->conn_count = (unsigned short) 0; ss->conn_bytes = (unsigned long) 0; @@ -2689,7 +2688,10 @@ ss->vhostrec = r->server; } } - if (status == SERVER_STARTING && r == NULL) { + if (status == SERVER_DEAD) { + ap_scoreboard_image->parent[child_num].pid = 0; + } + else if (status == SERVER_STARTING && r == NULL) { /* clean up the slot's vhostrec pointer (maybe re-used) * and mark the slot as belonging to a new generation. */