diff --git a/core/lib/Drupal/Core/Extension/ModuleInstaller.php b/core/lib/Drupal/Core/Extension/ModuleInstaller.php
index caddbad..0bdb543 100644
--- a/core/lib/Drupal/Core/Extension/ModuleInstaller.php
+++ b/core/lib/Drupal/Core/Extension/ModuleInstaller.php
@@ -155,10 +155,9 @@ public function install(array $module_list, $enable_dependencies = TRUE) {
         // exceptions if the configuration is not valid.
         $config_installer->checkConfigurationToInstall('module', $module);
 
-        $extension_config
-          ->set("module.$module", 0)
-          ->set('module', module_config_sort($extension_config->get('module')))
-          ->save();
+        $modules = $extension_config->get('module');
+        $modules[$module] = 0;
+        $modules = module_config_sort($modules);
 
         // Prepare the new module list, sorted by weight, including filenames.
         // This list is used for both the ModuleHandler and DrupalKernel. It
@@ -172,7 +171,7 @@ public function install(array $module_list, $enable_dependencies = TRUE) {
         // weight of 0.
         $current_module_filenames = $this->moduleHandler->getModuleList();
         $current_modules = array_fill_keys(array_keys($current_module_filenames), 0);
-        $current_modules = module_config_sort(array_merge($current_modules, $extension_config->get('module')));
+        $current_modules = module_config_sort(array_merge($current_modules, $modules));
         $module_filenames = array();
         foreach ($current_modules as $name => $weight) {
           if (isset($current_module_filenames[$name])) {
@@ -200,6 +199,11 @@ public function install(array $module_list, $enable_dependencies = TRUE) {
         // its statically cached list.
         drupal_static_reset('system_rebuild_module_data');
 
+        $extension_config
+          ->set("module.$module", 0)
+          ->set('module', $modules)
+          ->save();
+
         // Update the kernel to include it.
         $this->updateKernel($module_filenames);
 
