Index: includes/theme.maintenance.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.maintenance.inc,v
retrieving revision 1.30
diff -u -p -r1.30 theme.maintenance.inc
--- includes/theme.maintenance.inc	6 Jun 2009 16:05:26 -0000	1.30
+++ includes/theme.maintenance.inc	29 Jun 2009 04:55:51 -0000
@@ -36,12 +36,15 @@ function _drupal_maintenance_theme() {
     $theme = 'minnelli';
   }
   else {
-    // Load module basics (needed for hook invokes).
-    $module_list['system']['filename'] = 'modules/system/system.module';
-    $module_list['filter']['filename'] = 'modules/filter/filter.module';
-    module_list(TRUE, FALSE, $module_list);
-    drupal_load('module', 'system');
-    drupal_load('module', 'filter');
+    if (!db_is_active()) {
+      // If the database is down, module_list() is empty and we don't know what
+      // modules are enabled. So just load the modules needed for hook invokes.
+      $module_list['system']['filename'] = 'modules/system/system.module';
+      $module_list['filter']['filename'] = 'modules/filter/filter.module';
+      module_list(TRUE, FALSE, $module_list);
+      drupal_load('module', 'system');
+      drupal_load('module', 'filter');
+    }
 
     $theme = variable_get('maintenance_theme', 'minnelli');
   }
