diff --git a/commands/core/core.drush.inc b/commands/core/core.drush.inc
index d7db9bf..c1f96b3 100644
--- a/commands/core/core.drush.inc
+++ b/commands/core/core.drush.inc
@@ -68,6 +68,10 @@ function core_drush_command() {
     'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_SITE,
     'aliases' => array('updb'),
   );
+  $items['updatedb-cache-clear'] = array(
+    'description' => 'Clear caches after updatedb has run.',
+    'hidden' => TRUE,
+  );
   $items['core-config'] = array(
     'description' => 'Edit drushrc, site alias, and Drupal settings.php files.',
     'bootstrap' => DRUSH_BOOTSTRAP_MAX,
@@ -390,8 +394,8 @@ function drush_core_updatedb() {
   }
 
   if (drush_drupal_major_version() <= 6) {
-    // Clear all caches. We just performed major surgery.
-    drush_drupal_cache_clear_all();
+    // Clear all caches in a new process. We just performed major surgery.
+    drush_invoke_process('@self', 'updatedb-cache-clear');
   }
   else {
     // Should be unnecessary on D7.
@@ -403,6 +407,16 @@ function drush_core_updatedb() {
 }
 
 /**
+ * Post-command callback for updatedb.
+ *
+ * Clears caches in a separate bootstrap to get around updated static variables
+ * that may occur during updates.
+ */
+function drush_core_updatedb_cache_clear() {
+  drush_drupal_cache_clear_all();
+}
+
+/**
  * Implementation of hook_drush_help().
  *
  * This function is called whenever a drush user calls
