diff --git a/core/config/install/core.extension.yml b/core/config/install/core.extension.yml
index eae39ef..1514a9e 100644
--- a/core/config/install/core.extension.yml
+++ b/core/config/install/core.extension.yml
@@ -1,5 +1,4 @@
 module: {}
-theme:
-  stark: 0
+theme: {}
 disabled:
   theme: {}
diff --git a/core/lib/Drupal/Core/Theme/ThemeInitialization.php b/core/lib/Drupal/Core/Theme/ThemeInitialization.php
index 265c17e..1fb1c8d 100644
--- a/core/lib/Drupal/Core/Theme/ThemeInitialization.php
+++ b/core/lib/Drupal/Core/Theme/ThemeInitialization.php
@@ -61,29 +61,32 @@ public function getActiveThemeByName($theme_name) {
     if ($active_theme = $this->state->get('theme.active_theme.' . $theme_name)) {
       return $active_theme;
     }
-    else {
-      $themes = $this->themeHandler->listInfo();
-
-      if (empty($themes)) {
-        throw new \RuntimeException('No theme is enabled.');
-      }
-      if (!isset($themes[$theme_name])) {
-        throw new \InvalidArgumentException(String::format('Theme %theme is not enabled/does not exist.', array('theme' => $theme_name)));
-      }
+    $themes = $this->themeHandler->listInfo();
+
+    // If no theme could be negotiated, or if the negotiated theme is not within
+    // the list of enabled themes, fall back to the default theme output of core
+    // and modules (similar to Stark, but without a theme extension at all). This
+    // is possible, because loadActiveTheme() always loads the Twig theme engine.
+    if (empty($themes) || !$theme_name || !isset($themes[$theme_name])) {
+      $theme_name = 'core';
+      // /core/core.info.yml does not actually exist, but is required because
+      // Extension expects a pathname.
+      $active_theme = $this->getActiveTheme(new Extension('theme', 'core/core.info.yml'));
+      return $active_theme;
+    }
 
-      // Find all our ancestor themes and put them in an array.
-      $base_themes = array();
-      $ancestor = $theme_name;
-      while ($ancestor && isset($themes[$ancestor]->base_theme)) {
-        $ancestor = $themes[$ancestor]->base_theme;
-        $base_themes[] = $themes[$ancestor];
-      }
+    // Find all our ancestor themes and put them in an array.
+    $base_themes = array();
+    $ancestor = $theme_name;
+    while ($ancestor && isset($themes[$ancestor]->base_theme)) {
+      $ancestor = $themes[$ancestor]->base_theme;
+      $base_themes[] = $themes[$ancestor];
+    }
 
-      $active_theme = $this->getActiveTheme($themes[$theme_name], $base_themes);
+    $active_theme = $this->getActiveTheme($themes[$theme_name], $base_themes);
 
-      $this->state->set('theme.active_theme.' . $theme_name, $active_theme);
-      return $active_theme;
-    }
+    $this->state->set('theme.active_theme.' . $theme_name, $active_theme);
+    return $active_theme;
   }
 
   /**
@@ -123,7 +126,7 @@ public function loadActiveTheme(ActiveTheme $active_theme) {
   /**
    * {@inheritdoc}
    */
-  public function getActiveTheme(Extension $theme, array $base_themes) {
+  public function getActiveTheme(Extension $theme, array $base_themes = array()) {
     $theme_path = $theme->getPath();
 
     $values['path'] = $theme_path;
diff --git a/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php b/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php
index 7a7f240..79da258 100644
--- a/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php
+++ b/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php
@@ -60,6 +60,6 @@ public function loadActiveTheme(ActiveTheme $active_theme);
    * @return \Drupal\Core\Theme\ActiveTheme
    *   The active theme instance for the passed in $theme.
    */
-  public function getActiveTheme(Extension $theme, array $base_themes);
+  public function getActiveTheme(Extension $theme, array $base_themes = array());
 
 }
diff --git a/core/modules/simpletest/src/KernelTestBase.php b/core/modules/simpletest/src/KernelTestBase.php
index afea590..616d064 100644
--- a/core/modules/simpletest/src/KernelTestBase.php
+++ b/core/modules/simpletest/src/KernelTestBase.php
@@ -176,7 +176,7 @@ protected function setUp() {
     // \Drupal\Core\Config\ConfigInstaller::installDefaultConfig() to work.
     // Write directly to active storage to avoid early instantiation of
     // the event dispatcher which can prevent modules from registering events.
-    \Drupal::service('config.storage')->write('core.extension', array('module' => array(), 'theme' => array('seven' => 1, 'stark' => 1)));
+    \Drupal::service('config.storage')->write('core.extension', array('module' => array(), 'theme' => array()));
 
     // Collect and set a fixed module list.
     $class = get_class($this);
