Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.86
diff -u -r1.86 system.admin.inc
--- modules/system/system.admin.inc	30 Aug 2008 09:49:43 -0000	1.86
+++ modules/system/system.admin.inc	5 Sep 2008 20:15:48 -0000
@@ -218,9 +218,14 @@
       if (!isset($theme->info['core']) || $theme->info['core'] != DRUPAL_CORE_COMPATIBILITY) {
         $incompatible_core[] = $theme->name;
       }
+      // Ensure this theme is compatible with this version of PHP.
       if (version_compare(phpversion(), $theme->info['php']) < 0) {
         $incompatible_php[$theme->name] = $theme->info['php'];
       }
+      // Ensure the dependent theme engine is available.
+      if (isset($theme->info['engine']) && empty($theme->owner)) {
+        $incompatible_engine[$theme->name] = $theme->info['engine'];
+      }
     }
   }
 
@@ -230,6 +235,7 @@
     '#default_value' => $status,
     '#incompatible_themes_core' => drupal_map_assoc($incompatible_core),
     '#incompatible_themes_php' => $incompatible_php,
+    '#incompatible_themes_engine' => $incompatible_engine,
   );
   $form['theme_default'] = array(
     '#type' => 'radios',
@@ -2224,6 +2230,12 @@
       }
       $description .= '<div class="incompatible">' . t('This theme requires PHP version @php_required and is incompatible with PHP version !php_version.', array('@php_required' => $php_required, '!php_version' => phpversion())) . '</div>';
     }
+    elseif (isset($form['status']['#incompatible_themes_engine'][$key])) {
+      unset($form['status'][$key]);
+      $status = theme('image', 'misc/watchdog-error.png', t('incompatible'), t('Theme engine not found.'));
+      $engine_required = $form['status']['#incompatible_themes_engine'][$key];
+      $description .= '<div class="incompatible">' . t('This theme requires the @engine_required theme engine.', array('@engine_required' => $engine_required)) . '</div>';
+    }
     else {
       $status = drupal_render($form['status'][$key]);
     }