Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.340
diff -u -p -r1.340 bootstrap.inc
--- includes/bootstrap.inc	7 Jan 2010 04:54:18 -0000	1.340
+++ includes/bootstrap.inc	14 Jan 2010 15:54:01 -0000
@@ -1498,7 +1498,7 @@ function drupal_bootstrap($phase = NULL,
   static $final_phase;
   // Not drupal_static(), because it's impossible to roll back to an earlier
   // bootstrap state.
-  static $completed_phase = -1;
+  static $stored_phase = -1;
 
   // When not recursing, store the phase name so it's not forgotten while
   // recursing.
@@ -1508,8 +1508,15 @@ function drupal_bootstrap($phase = NULL,
   if (isset($phase)) {
     // Call a phase if it has not been called before and is below the requested
     // phase.
-    while ($phases && $phase > $completed_phase && $final_phase > $completed_phase) {
+    while ($phases && $phase > $stored_phase && $final_phase > $stored_phase) {
       $current_phase = array_shift($phases);
+
+      // This function is re-entrant. Only update the completed phase when the
+      // current call actually resulted in a progress in the bootstrap process.
+      if ($current_phase > $stored_phase) {
+        $stored_phase = $current_phase;
+      }
+
       switch ($current_phase) {
         case DRUPAL_BOOTSTRAP_CONFIGURATION:
           _drupal_bootstrap_configuration();
@@ -1545,14 +1552,9 @@ function drupal_bootstrap($phase = NULL,
           _drupal_bootstrap_full();
           break;
       }
-      // This function is reentrant. Only update the completed phase when the
-      // current call actually resulted in a progress in the bootstrap process.
-      if ($current_phase > $completed_phase) {
-        $completed_phase = $current_phase;
-      }
     }
   }
-  return $completed_phase;
+  return $stored_phase;
 }
 
 /**
