Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.155
diff -u -r1.155 system.admin.inc
--- modules/system/system.admin.inc	8 Jun 2009 04:48:43 -0000	1.155
+++ modules/system/system.admin.inc	10 Jun 2009 02:59:46 -0000
@@ -468,15 +468,19 @@
   if ($key) {
     // Include the theme's theme-settings.php file
     $filename = DRUPAL_ROOT . '/' . str_replace("/$key.info", '', $themes[$key]->filename) . '/theme-settings.php';
-    if (!file_exists($filename) and !empty($themes[$key]->info['base theme'])) {
-      // If the theme doesn't have a theme-settings.php file, use the base theme's.
-      $base = $themes[$key]->info['base theme'];
-      $filename = DRUPAL_ROOT . '/' . str_replace("/$base.info", '', $themes[$base]->filename) . '/theme-settings.php';
-    }
     if (file_exists($filename)) {
       require_once $filename;
     }
 
+    // Include the theme's base theme-settings.php file
+    $base = (!empty($themes[$key]->info['base theme'])) ? $themes[$key]->info['base theme'] : '';
+    if ($base) {
+      $filename = DRUPAL_ROOT . '/' . str_replace("/$base.info", '', $themes[$base]->filename) . '/theme-settings.php';
+      if (file_exists($filename)) {
+        require_once $filename;
+      }
+    }
+
     // Call engine-specific settings.
     $function = $themes[$key]->prefix . '_engine_settings';
     if (function_exists($function)) {
@@ -486,6 +490,19 @@
         $form['engine_specific'] = array_merge($form['engine_specific'], $group);
       }
     }
+    
+    // Call base theme-specific settings.
+    if ($base) {
+      $function = $base .'_settings';
+      if (function_exists($function)) {
+        $group = $function($settings, $form);
+        if (!empty($group)) {
+          $form['base_theme_specific'] = array('#type' => 'fieldset', '#title' => t('Base theme-specific settings'), '#description' => t('These settings only exist for the %theme base theme and all the styles based on it.', array('%theme' => $themes[$base]->info['name'])));
+          $form['base_theme_specific'] = array_merge($form['base_theme_specific'], $group);
+        }
+      }
+    }
+    
     // Call theme-specific settings.
     $function = $key . '_settings';
     if (!function_exists($function)) {

