Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.268
diff -u -F^f -r1.268 theme.inc
--- includes/theme.inc	26 Dec 2005 17:20:23 -0000	1.268
+++ includes/theme.inc	27 Dec 2005 21:21:39 -0000
@@ -99,7 +99,7 @@ function list_themes($refresh = FALSE) {
 
   if (!$list) {
     $list = array();
-    $result = db_query("SELECT * FROM {system} WHERE type = 'theme' AND status = 1");
+    $result = db_query("SELECT * FROM {system} WHERE type = 'theme'");
     while ($theme = db_fetch_object($result)) {
       if (file_exists($theme->filename)) {
         $list[$theme->name] = $theme;
Index: modules/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system.module,v
retrieving revision 1.272
diff -u -F^f -r1.272 system.module
--- modules/system.module	27 Dec 2005 10:36:16 -0000	1.272
+++ modules/system.module	27 Dec 2005 21:21:40 -0000
@@ -160,7 +160,13 @@ function system_test() {
 function system_user($type, $edit, &$user, $category = NULL) {
   if ($type == 'form' && $category == 'account') {
     if (user_access('select different theme')) {
-      $themes = list_themes();
+      $allthemes = list_themes();
+      // list only active themes
+      foreach ($allthemes as $key => $theme) {
+        if ($theme->status) {
+          $themes[$key] = $theme;
+        }
+      }
 
       if (count($themes) > 1) {
         ksort($themes);
