--- admin.module
+++ (clipboard)
@@ -1,6 +1,9 @@
 <?php
 // $Id: admin.module,v 1.1.2.23 2009/07/30 14:41:34 yhahn Exp $
 
+define('FORCE_ADMIN_THEME', 'force_admin_theme');
+define('FORCE_DEFAULT_THEME', 'force_default_theme');
+
 /**
  * Implementation of hook_init().
  */
@@ -25,6 +28,15 @@
   $admin_theme = variable_get('admin_theme', 'slate');
 
   // Initialize the slate theme. Bypass the theme system entirely so we can load our own theme into place.
+  $init_admin_theme = array();
+  drupal_alter('admin_condition', $init_admin_theme);
+  if (in_array('force_admin_theme', $init_admin_theme)) {
+    _admin_init_theme();
+  }
+  elseif (in_array('force_default_theme', $init_admin_theme)) {
+    return;
+  }
+  
   if (variable_get('node_admin_theme', 0) && (strpos($_GET['q'], 'node/add') === 0 || strpos($_GET['q'], 'admin/content/add') === 0 || (arg(0) == 'node' && arg(2) == 'edit'))) {
     _admin_init_theme();
   }
