diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 726503e..7eaac0f 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -2453,20 +2453,17 @@ function template_preprocess_maintenance_page(&$variables) {
       $head_title['slogan'] = strip_tags(filter_xss_admin($site_slogan));
     }
   }
-  $path = drupal_get_path('module', 'system');
 
   // These are usually added from system_page_build() except maintenance.css.
   // When the database is inactive it's not called so we add it here.
-  $default_css = array(
-    '#attached' => array(
-      'css' => array(
-        $path . '/css/system.module.css',
-        $path . '/css/system.theme.css',
-        $path . '/css/system.admin.css',
-        $path . '/css/system.maintenance.css',
-      ),
-    ),
-  );
+  $default_css['#attached']['library'][] = array('system', 'drupal.base');
+  $path = drupal_get_path('module', 'system');
+  // Adjust the weights to load these early.
+  $default_css['#attached']['css'][$path . '/css/system.module.css'] = array('weight' => CSS_COMPONENT - 10, 'every_page' => TRUE);
+  $default_css['#attached']['css'][$path . '/css/system.theme.css'] = array('weight' => CSS_SKIN - 10, 'every_page' => TRUE);
+  // Unlike regular pages, the admin.css is added for every maintenance page.
+  $default_css['#attached']['css'][$path . '/css/system.admin.css'] = array('weight' => CSS_COMPONENT - 10, 'every_page' => TRUE);
+  $default_css['#attached']['css'][$path . '/css/system.maintenance.css'] = array('weight' => CSS_COMPONENT - 10, 'every_page' => TRUE);
   drupal_render($default_css);
 
   $variables['head_title_array']  = $head_title;
diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc
index 807566c..96dcd2f 100644
--- a/core/includes/theme.maintenance.inc
+++ b/core/includes/theme.maintenance.inc
@@ -95,11 +95,6 @@ function _drupal_maintenance_theme() {
   // Prime the theme registry.
   // @todo Remove global theme variables.
   Drupal::service('theme.registry');
-
-  // These CSS files are normally added by system_page_build(), except
-  // system.maintenance.css. When the database is inactive, it's not called so
-  // we add them here.
-  drupal_add_library('system', 'normalize');
 }
 
 /**
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index ee3466d..2186dd4 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2122,7 +2122,7 @@ function system_filetransfer_info() {
  * Implements hook_page_build().
  */
 function system_page_build(&$page) {
-  // Note: ensure the same CSS is loaded in _drupal_maintenance_theme().
+  // Note: ensure the same CSS is loaded in template_preprocess_maintenance_page().
   $page['#attached']['library'][] = array('system', 'normalize');
   $path = drupal_get_path('module', 'system');
   // Adjust the weights to load these early.
