--- 3/httpd-2.2.17/server/scoreboard.c	2010-10-08 00:56:54.000000000 +0800
+++ httpd-2.2.17/server/scoreboard.c	2012-02-08 12:00:45.382481839 +0800
@@ -42,6 +42,8 @@
 AP_DECLARE_DATA int ap_extended_status = 0;
 AP_DECLARE_DATA int ap_mod_status_reqtail = 0;
 
+static ap_scoreboard_e scoreboard_type;
+
 #if APR_HAS_SHARED_MEMORY
 
 #include "apr_shm.h"
@@ -250,7 +252,7 @@
     if (ap_scoreboard_image == NULL) {
         return APR_SUCCESS;
     }
-    if (ap_scoreboard_image->global->sb_type == SB_SHARED) {
+    if (scoreboard_type == SB_SHARED) {
         ap_cleanup_shared_mem(NULL);
     }
     else {
@@ -311,8 +313,8 @@
         }
         ap_init_scoreboard(sb_mem);
     }
+    ap_scoreboard_image->global->sb_type = scoreboard_type = sb_type;
 
-    ap_scoreboard_image->global->sb_type = sb_type;
     ap_scoreboard_image->global->running_generation = 0;
     ap_scoreboard_image->global->restart_time = apr_time_now();
 
