diff --git includes/bootstrap.inc includes/bootstrap.inc
index 590f1ba..caf8f97 100644
--- includes/bootstrap.inc
+++ includes/bootstrap.inc
@@ -1676,10 +1676,6 @@ function drupal_get_schema($table = NULL, $rebuild = FALSE) {
 function drupal_function_exists($function) {
   static $checked = array();
 
-  if (defined('MAINTENANCE_MODE')) {
-    return function_exists($function);
-  }
-
   if (isset($checked[$function])) {
     return $checked[$function];
   }
@@ -1746,7 +1742,11 @@ function _registry_check_code($type, $name = NULL) {
 
   if (!isset($lookup_cache)) {
     $lookup_cache = array();
-    if ($cache = cache_get('lookup_cache', 'cache_registry')) {
+    if (defined('MAINTENANCE_MODE')) {
+      // TODO - Call a hook to get main registry.
+      $lookup_cache = module_invoke_all('maintenance_registry');
+    }
+    elseif ($cache = cache_get('lookup_cache', 'cache_registry')) {
       $lookup_cache = $cache->data;
     }
   }
@@ -1778,28 +1778,29 @@ function _registry_check_code($type, $name = NULL) {
     return $lookup_cache[$cache_key];
   }
 
-  // This function may get called when the default database is not active, but
-  // there is no reason we'd ever want to not use the default database for
-  // this query.
-  $file = Database::getConnection('default', 'default')->query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
-      ':name' => $name,
-      ':type' => $type,
-    ))
-    ->fetchField();
+  if (!defined('MAINTENANCE_MODE')) {
+    // This function may get called when the default database is not active, but
+    // there is no reason we'd ever want to not use the default database for
+    // this query.
+    $file = Database::getConnection('default', 'default')->query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
+        ':name' => $name,
+        ':type' => $type,
+      ))
+      ->fetchField();
 
-  // Flag that we've run a lookup query and need to update the cache.
-  $cache_update_needed = TRUE;
-
-  // Misses are valuable information worth caching, so cache even if
-  // $file is FALSE.
-  $lookup_cache[$cache_key] = $file;
+    // Flag that we've run a lookup query and need to update the cache.
+    $cache_update_needed = TRUE;
+    // Misses are valuable information worth caching, so cache even if
+    // $file is FALSE.
+    $lookup_cache[$cache_key] = $file;
 
-  if ($file) {
-    require_once DRUPAL_ROOT . '/' . $file;
-    return TRUE;
-  }
-  else {
-    return FALSE;
+    if ($file) {
+      require_once DRUPAL_ROOT . '/' . $file;
+      return TRUE;
+    }
+    else {
+      return FALSE;
+    }
   }
 }
 
diff --git modules/system/system.module modules/system/system.module
index e4bb758..8e6b10c 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -162,6 +162,12 @@ function system_theme() {
   ));
 }
 
+function system_maintenance_registry() {
+  return array(
+    'ftheme_status_report' => drupal_get_path('module', 'system') . '/system.admin.inc',
+  );
+}
+
 /**
  * Implementation of hook_perm().
  */
