diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index a5a8885..1018bbd 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -280,6 +280,12 @@ function system_themes_admin_form_submit($form, &$form_state) {
   drupal_set_message(t('The configuration options have been saved.'));
   variable_set('admin_theme', $form_state['values']['admin_theme']);
   variable_set('node_admin_theme', $form_state['values']['node_admin_theme']);
+
+   // Because the theme selected to be admin doesn't have to be
+   // enabled, register the theme's blocks in the block table, if not
+   // already registered, so the essential blocks appear in
+   // the admin/structure/block form.
+     block_theme_initialize($form_state['values']['admin_theme']);
 }
 
 /**
