--- admin.module
+++ admin.module
@@ -23,7 +23,8 @@ function admin_init() {
   }
   else if (arg(0) == 'admin' && variable_get('admin_theme', 'slate') == 'slate') {
     if (strpos($_GET['q'], 'admin/build/block') === 0) {
-      if (in_array(arg(3), array('configure', 'delete', 'add'), TRUE)) {
+      if (in_array(arg(3), array('configure', 'delete', 'add'), TRUE) || 
+          (arg(3) == 'list' && arg(4) == 'slate')) {
         _admin_init_theme();
       }
     }
@@ -37,6 +38,29 @@ function admin_init() {
 }
 
 /**
+ * Implementation of hook_menu().
+ */
+function admin_menu() {
+  $items = array();
+
+  // For normal themes, the block module (through block_menu()) add a
+  // menu item for editing that theme's block. That does not happen for
+  // the slate theme, since it is not always available via list_themes.
+  // Therefore, we add the menu item here manually.
+  $items['admin/build/block/list/slate'] = array(
+    'title' => 'Admin theme (slate)',
+    'page arguments' => 'slate',
+    'type' => MENU_LOCAL_TASK, // Slate should not be the default theme.
+    'weight' => 5, // Normal themes have 0, so we'll be last.
+    'file' => 'block.admin.inc',
+    'file path' => 'modules/block',
+    'access arguments' => array('administer blocks'),
+  );
+
+  return $items;
+}
+
+/**
  * Menu access callback for admin landing pages.
  */
 function admin_landing_page_access($path) {
