Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.585.2.21
diff -u -r1.585.2.21 system.module
--- modules/system/system.module	8 Oct 2008 20:47:04 -0000	1.585.2.21
+++ modules/system/system.module	9 Oct 2008 03:09:29 -0000
@@ -810,12 +810,14 @@
 /**
  * Collect data about all currently available themes.
  *
+ * @param $reset
+ *   Whether or not to reset the theme data.
  * @return
  *   Array of all available themes and their data.
  */
-function system_theme_data() {
+function system_theme_data($reset = FALSE) {
   // Scan the installation theme .info files and their engines.
-  $themes = _system_theme_data();
+  $themes = _system_theme_data($reset);
 
   // Extract current files from database.
   system_get_files_database($themes, 'theme');
@@ -836,13 +838,15 @@
 /**
  * Helper function to scan and collect theme .info data and their engines.
  *
+ * @param $reset
+ *   Whether or not to reset the theme data.
  * @return
  *   An associative array of themes information.
  */
-function _system_theme_data() {
+function _system_theme_data($reset = FALSE) {
   static $themes_info = array();
 
-  if (empty($themes_info)) {
+  if ($reset || empty($themes_info)) {
     // Find themes
     $themes = drupal_system_listing('\.info$', 'themes');
     // Find theme engines
Index: update.php
===================================================================
RCS file: /cvs/drupal/drupal/update.php,v
retrieving revision 1.252
diff -u -r1.252 update.php
--- update.php	3 Feb 2008 18:41:16 -0000	1.252
+++ update.php	9 Oct 2008 03:09:29 -0000
@@ -448,7 +448,8 @@
 
   // Store values of expensive functions for future use.
   if (empty($themes) || empty($modules)) {
-    $themes = system_theme_data();
+    // Reset the theme data so enabled *compatable* themes are not disabled.
+    $themes = system_theme_data(TRUE);
     $modules = module_rebuild_cache();
   }
 

