=== modified file 'includes/theme.inc'
--- includes/theme.inc	2009-10-05 02:43:01 +0000
+++ includes/theme.inc	2009-10-08 02:28:21 +0000
@@ -37,6 +37,12 @@ define('MARK_UPDATED', 2);
  * @} End of "Content markers".
  */
 
+
+/**
+ * An exception to throw when a theme function is requested that does not exist.
+ */
+class ThemeHookNotFoundException extends Exception {}
+
 /**
  * Determines if a theme is available to use.
  *
@@ -256,7 +262,7 @@ function _theme_load_registry($theme, $b
   else {
     // If not, build one and cache it.
     $registry = _theme_build_registry($theme, $base_theme, $theme_engine);
-   // Only persist this registry if all modules are loaded. This assures a 
+   // Only persist this registry if all modules are loaded. This assures a
    // complete set of theme hooks.
     if (drupal_get_bootstrap_phase() == DRUPAL_BOOTSTRAP_FULL) {
       _theme_save_registry($theme, $registry);
@@ -770,10 +776,6 @@ function theme() {
     $hook = $candidate;
   }
 
-  if (!isset($hooks[$hook])) {
-    return;
-  }
-
   $info = $hooks[$hook];
   global $theme_path;
   $temp = $theme_path;
@@ -2128,7 +2130,7 @@ function template_preprocess_html(&$vari
   else {
     $variables['classes_array'][] = 'no-sidebars';
   }
-  
+
   // Populate the body classes.
   if ($suggestions = template_page_suggestions(arg(), 'page')) {
     foreach ($suggestions as $suggestion) {
@@ -2140,7 +2142,7 @@ function template_preprocess_html(&$vari
       }
     }
   }
-  
+
   // If on an individual node page, add the node type to body classes.
   if ($node = menu_get_object()) {
     $variables['classes_array'][] = drupal_html_class('node-type-' . $node->type);
@@ -2172,7 +2174,7 @@ function template_preprocess_html(&$vari
     }
   }
   $variables['head_title'] = implode(' | ', $head_title);
-  
+
   // Populate the page template suggestions.
   if ($suggestions = template_page_suggestions(arg(), 'html')) {
     $variables['template_files'] = $suggestions;

=== modified file 'modules/system/system.admin.inc'
--- modules/system/system.admin.inc	2009-10-06 01:38:55 +0000
+++ modules/system/system.admin.inc	2009-10-08 02:24:59 +0000
@@ -1932,7 +1932,7 @@ function system_php() {
 function system_batch_page() {
   require_once DRUPAL_ROOT . '/includes/batch.inc';
   $output = _batch_page();
-  
+
   // Use the same theme that the page that started the batch.
   $batch = &batch_get();
   $GLOBALS['custom_theme'] = $batch['theme'];
@@ -2247,6 +2247,20 @@ function theme_system_modules_uninstall(
 }
 
 /**
+ * Theme function for the system settings form.
+ *
+ * By default this does not alter the appearance of a form at all,
+ * but is provided as a convenience for themers.
+ *
+ * @param $form
+ *   An associative array containing the structure of the form.
+ * @ingroup themeable
+ */
+function theme_system_settings_form($form) {
+  return drupal_render_children($form);
+}
+
+/**
  * Theme function for the system themes form.
  *
  * @param $form

=== modified file 'modules/system/system.module'
--- modules/system/system.module	2009-10-05 02:43:01 +0000
+++ modules/system/system.module	2009-10-08 02:24:52 +0000
@@ -159,6 +159,10 @@ function system_theme() {
       'arguments' => array('form' => NULL),
       'file' => 'system.admin.inc',
     ),
+    'system_settings_form' => array(
+      'arguments' => array('form' => NULL),
+      'file' => 'system.admin.inc',
+    ),
     'system_modules_fieldset' => array(
       'arguments' => array('form' => NULL),
       'file' => 'system.admin.inc',

