diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index c562039bdb83a64b37c17ff14ef41a914fd6638d..ef42ceaafee1e5032c6db1b634a8316b566c8a05 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2450,7 +2450,7 @@ function drupal_get_bootstrap_phase() {
  *   The instance of the Drupal Container used to set up and maintain object
  *   instances.
  */
-function drupal_container(ContainerBuilder $reset = NULL) {
+function drupal_container(Container $reset = NULL) {
   // We do not use drupal_static() here because we do not have a mechanism by
   // which to reinitialize the stored objects, so a drupal_static_reset() call
   // would leave Drupal in a nonfunctional state.
@@ -2460,14 +2460,13 @@ function drupal_container(ContainerBuilder $reset = NULL) {
   }
   elseif (!isset($container)) {
     // This will only ever happen if an error has been thrown. Just build a new
-    // ContainerBuilder with only the language_interface and language_content
-    // services.
+    // ContainerBuilder with only the language_interface service.
     $container = new ContainerBuilder();
+
     // An interface language always needs to be available for t() and other
     // functions. This default is overridden by drupal_language_initialize()
     // during language negotiation.
     $container->register(LANGUAGE_TYPE_INTERFACE, 'Drupal\\Core\\Language\\Language');
-    $container->register(LANGUAGE_TYPE_CONTENT, 'Drupal\\Core\\Language\\Language');
   }
   return $container;
 }
diff --git a/core/lib/Drupal/Core/DrupalBundle.php b/core/lib/Drupal/Core/DrupalBundle.php
index 30c074d9be4bb29124098e03434112a3281a336d..538ab1cce4a8adae179399b4ca4a774c10bcec27 100644
--- a/core/lib/Drupal/Core/DrupalBundle.php
+++ b/core/lib/Drupal/Core/DrupalBundle.php
@@ -21,6 +21,7 @@ public function build(ContainerBuilder $container)
       $info += array(
         'tags' => array(),
         'references' => array(),
+        'parameters' => array(),
         'methods' => array(),
         'arguments' => array(),
       );
@@ -32,6 +33,11 @@ public function build(ContainerBuilder $container)
 
       $definition = new Definition($info['class'], $references);
 
+      foreach ($info['parameters'] as $key => $param) {
+        $container->setParameter($key, $param);
+        $definition->addArgument("%{$key}%");
+      }
+
       if (isset($info['factory_class']) && isset($info['factory_method'])) {
         $definition->setFactoryClass($info['factory_class']);
         $definition->setFactoryMethod($info['factory_method']);
@@ -63,6 +69,31 @@ public function build(ContainerBuilder $container)
    */
   function getDefinitions() {
     return array(
+      // Register configuration storage dispatcher.
+      'config.storage.dispatcher' => array(
+        'class' => 'Drupal\Core\Config\StorageDispatcher',
+        'parameters' => array(
+          'conifg.storage.info' => array(
+            'Drupal\Core\Config\DatabaseStorage' => array(
+              'connection' => 'default',
+              'target' => 'default',
+              'read' => TRUE,
+              'write' => TRUE,
+            ),
+            'Drupal\Core\Config\FileStorage' => array(
+              'directory' => config_get_config_directory(),
+              'read' => TRUE,
+              'write' => FALSE,
+            ),
+          ),
+        ),
+      ),
+      'config.factory' => array(
+        'class' => 'Drupal\Core\Config\ConfigFactory',
+        'references' => array(
+          'config.storage.dispatcher'
+        )
+      ),
       'dispatcher' => array(
         'class' => 'Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher',
         'references' => array(
diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index f777e19f61bf192a6460f187bddfbccbd680e08e..b9dbed0e75cf6fdafa34c77dbe5aae8062304a20 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -18,63 +18,73 @@
  */
 class DrupalKernel extends Kernel {
 
-    public function registerBundles()
-    {
-        $bundles = array(
-            new DrupalBundle(),
-        );
-        $modules = array_keys(system_list('module_enabled'));
-        foreach ($modules as $module) {
-          $class = "\Drupal\{$module}\{$module}Bundle";
-          if (class_exists($class)) {
-            $bundles[] = new $class();
-          }
-        }
-        return $bundles;
-    }
+  public function registerBundles()
+  {
+    $bundles = array(
+      new DrupalBundle(),
+    );
 
+    // Rather than bootstrapping to a higher phase prior to booting the Kernel, which
+    // would ensure these files are loaded already, we want to boot the Kernel as
+    // early as possible in the bootstrapping phase.
+    // TODO: Somehow remove the necessity of calling system_list() to find out which
+    // bundles exist.
+    require_once DRUPAL_ROOT . '/core/includes/cache.inc';
+    require_once DRUPAL_ROOT . '/core/includes/module.inc';
+    require_once DRUPAL_ROOT . '/core/includes/database.inc';
 
-    /**
-     * Initializes the service container.
-     */
-    protected function initializeContainer()
-    {
-        $this->container = $this->buildContainer();
-        $this->container->set('kernel', $this);
-        drupal_container($this->container);
+    $modules = array_keys(system_list('module_enabled'));
+    foreach ($modules as $module) {
+      $class = "\Drupal\{$module}\{$module}Bundle";
+      if (class_exists($class)) {
+        $bundles[] = new $class();
+      }
     }
+    return $bundles;
+  }
 
-    /**
-     * Builds the service container.
-     *
-     * @return ContainerBuilder The compiled service container
-     */
-    protected function buildContainer()
-    {
-        $container = $this->getContainerBuilder();
-        foreach ($this->bundles as $bundle) {
-            $bundle->build($container);
-        }
-        $container->compile();
-        return $container;
-    }
 
+  /**
+   * Initializes the service container.
+   */
+  protected function initializeContainer()
+  {
+    $this->container = $this->buildContainer();
+    $this->container->set('kernel', $this);
+    drupal_container($this->container);
+  }
 
-    /**
-     * Gets a new ContainerBuilder instance used to build the service container.
-     *
-     * @return ContainerBuilder
-     */
-    protected function getContainerBuilder()
-    {
-        return new ContainerBuilder(new ParameterBag($this->getKernelParameters()));
+  /**
+   * Builds the service container.
+   *
+   * @return ContainerBuilder The compiled service container
+   */
+  protected function buildContainer()
+  {
+    $container = $this->getContainerBuilder();
+    foreach ($this->bundles as $bundle) {
+      $bundle->build($container);
     }
+    $container->compile();
+    return $container;
+  }
 
-    public function registerContainerConfiguration(LoaderInterface $loader)
-    {
-      // We have to define this method because it's not defined in the base class,
-      // but the LoaderInterface class is part of the config component, which we
-      // are not using, so this is badness :-/ The alternative is to not extend
-      // the base Kernel class and just implement the KernelInterface.
-    }
+
+  /**
+   * Gets a new ContainerBuilder instance used to build the service container.
+   *
+   * @return ContainerBuilder
+   */
+  protected function getContainerBuilder()
+  {
+    return new ContainerBuilder(new ParameterBag($this->getKernelParameters()));
+  }
+
+  public function registerContainerConfiguration(LoaderInterface $loader)
+  {
+    // We have to define this method because it's not defined in the base class
+    // but is part of the KernelInterface interface. However, the LoaderInterface
+    // class is part of the config component, which we are not using, so this
+    // is badness :-/
+  }
 }
diff --git a/index.php b/index.php
index 10e38af70954a7d69e783d38a9a7fa5ec67c8c19..df4b2b6a78383fa019199b97f2c5104a1668d312 100644
--- a/index.php
+++ b/index.php
@@ -21,7 +21,6 @@
 // Bootstrap the lowest level of what we need.
 require_once DRUPAL_ROOT . '/core/includes/bootstrap.inc';
 drupal_bootstrap(DRUPAL_BOOTSTRAP_CONFIGURATION);
-drupal_bootstrap(DRUPAL_BOOTSTRAP_VARIABLES);
 
 // Create a request object from the HTTPFoundation.
 $request = Request::createFromGlobals();