diff --git a/core/includes/config.inc b/core/includes/config.inc
index 51476b7..462f852 100644
--- a/core/includes/config.inc
+++ b/core/includes/config.inc
@@ -141,7 +141,7 @@ function config_sync_changes(array $config_changes, StorageInterface $source_sto
  * @todo Add support for other extension types; e.g., themes etc.
  */
 function config_import_invoke_owner(array $config_changes, StorageInterface $source_storage, StorageInterface $target_storage) {
-  $storage_dispatcher = drupal_container()->get('config.storage.dispatcher');
+  $config_storage = drupal_container()->get('config.storage');
 
   // Allow modules to take over configuration change operations for
   // higher-level configuration data.
@@ -155,14 +155,13 @@ function config_import_invoke_owner(array $config_changes, StorageInterface $sou
       // handle the configuration change.
       $handled_by_module = FALSE;
       if (module_hook($module, 'config_import_' . $op)) {
-        $old_config = new Config($storage_dispatcher);
+        $old_config = new Config($name, $config_storage);
         $old_config
-          ->setName($name)
           ->load();
 
         $data = $source_storage->read($name);
-        $new_config = new Config($storage_dispatcher);
-        $new_config->setName($name);
+        $new_config = new Config($name, $config_storage);
+
         if ($data !== FALSE) {
           $new_config->setData($data);
         }
diff --git a/core/lib/Drupal/Core/Config/Config.php b/core/lib/Drupal/Core/Config/Config.php
index a749a4b..f672f57 100644
--- a/core/lib/Drupal/Core/Config/Config.php
+++ b/core/lib/Drupal/Core/Config/Config.php
@@ -34,21 +34,22 @@ class Config {
   protected $data = array();
 
   /**
-   * The injected storage dispatcher object.
+   * The storage used for reading and writing.
    *
-   * @var Drupal\Core\Config\StorageDispatcher
+   * @var Drupal\Core\Config\StorageInterface
    */
-  protected $storageDispatcher;
+  protected $storage;
 
   /**
    * Constructs a configuration object.
    *
-   * @param Drupal\Core\Config\StorageDispatcher $storageDispatcher
-   *   A storage dispatcher object to use for reading and writing the
+   * @param Drupal\Core\Config\StorageInterface $storage
+   *   A storage object to use for reading and writing the
    *   configuration data.
    */
-  public function __construct(StorageDispatcher $storageDispatcher) {
-    $this->storageDispatcher = $storageDispatcher;
+  public function __construct($name, StorageInterface $storage) {
+    $this->name = $name;
+    $this->storage = $storage;
   }
 
   /**
@@ -222,7 +223,7 @@ class Config {
    * Loads configuration data into this object.
    */
   public function load() {
-    $data = $this->storageDispatcher->selectStorage('read', $this->name)->read($this->name);
+    $data = $this->storage->read($this->name);
     if ($data === FALSE) {
       $this->isNew = TRUE;
       $this->setData(array());
@@ -239,7 +240,7 @@ class Config {
    */
   public function save() {
     $this->sortByKey($this->data);
-    $this->storageDispatcher->selectStorage('write', $this->name)->write($this->name, $this->data);
+    $this->storage->write($this->name, $this->data);
     $this->isNew = FALSE;
     return $this;
   }
@@ -269,7 +270,7 @@ class Config {
    */
   public function delete() {
     $this->data = array();
-    $this->storageDispatcher->selectStorage('write', $this->name)->delete($this->name);
+    $this->storage->delete($this->name);
     $this->isNew = TRUE;
     return $this;
   }
diff --git a/core/lib/Drupal/Core/Config/ConfigFactory.php b/core/lib/Drupal/Core/Config/ConfigFactory.php
index 1fbca62..5dbcdea 100644
--- a/core/lib/Drupal/Core/Config/ConfigFactory.php
+++ b/core/lib/Drupal/Core/Config/ConfigFactory.php
@@ -23,11 +23,11 @@ namespace Drupal\Core\Config;
  */
 class ConfigFactory {
   /**
-   * A storage dispatcher instance to use for reading and writing configuration data.
+   * A storage instance to use for reading and writing configuration data.
    *
    * @var Drupal\Core\Config\StorageDispatcher
    */
-  protected $storageDispatcher;
+  protected $storage;
 
   /**
    * Constructs the Config factory.
@@ -36,8 +36,8 @@ class ConfigFactory {
    *   The storage dispatcher object to use for reading and writing
    *   configuration data.
    */
-  public function __construct(StorageDispatcher $storage_dispatcher) {
-    $this->storageDispatcher = $storage_dispatcher;
+  public function __construct(StorageInterface $storage) {
+    $this->storage = $storage;
   }
 
   /**
@@ -68,7 +68,6 @@ class ConfigFactory {
     // @todo The decrease of CPU time is interesting, since that means that
     //   ContainerBuilder involves plenty of function calls (which are known to
     //   be slow in PHP).
-    $config = new Config($this->storageDispatcher);
-    return $config->setName($name);
+    return new Config($name, $this->storage);
   }
 }
diff --git a/core/lib/Drupal/Core/Config/StorageDispatcher.php b/core/lib/Drupal/Core/Config/StorageDispatcher.php
deleted file mode 100644
index ebf7049..0000000
--- a/core/lib/Drupal/Core/Config/StorageDispatcher.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-namespace Drupal\Core\Config;
-
-/**
- * Dispatches read/write operations to storage controllers.
- *
- * The storage dispatcher determines which storage out of multiple is configured
- * and allowed to handle a particular configuration object, depending on the
- * read/write operation being performed.
- *
- * The information about available storage controllers and their configuration
- * options is passed once into the constructor and normally should not change
- * within a single request or context. Special use-cases, such as import and
- * export operations, should instantiate a custom storage dispatcher tailored
- * to their specific needs.
- *
- * The storage dispatcher instantiates storage controllers on demand, and only
- * once per storage.
- *
- * @see Drupal\Core\Config\StorageInterface
- */
-class StorageDispatcher {
-
-  /**
-   * Information about available storage controllers.
-   *
-   * @var array
-   */
-  protected $storageInfo;
-
-  /**
-   * Instantiated storage controller objects.
-   *
-   * @see Drupal\Core\Config\StorageInterface
-   *
-   * @var array
-   */
-  protected $storageInstances;
-
-  /**
-   * Constructs the storage dispatcher object.
-   *
-   * @param array $storage_info
-   *   An associative array defining the storage controllers to use and any
-   *   required configuration options for them; e.g.:
-   *   @code
-   *   array(
-   *     'Drupal\Core\Config\DatabaseStorage' => array(
-   *       'target' => 'default',
-   *       'read' => TRUE,
-   *       'write' => TRUE,
-   *     ),
-   *     'Drupal\Core\Config\FileStorage' => array(
-   *       'directory' => 'sites/default/files/config',
-   *       'read' => TRUE,
-   *       'write' => FALSE,
-   *     ),
-   *   )
-   *   @endcode
-   */
-  public function __construct(array $storage_info) {
-    $this->storageInfo = $storage_info;
-  }
-
-  /**
-   * Returns a storage controller to use for a given operation.
-   *
-   * Handles the core functionality of the storage dispatcher by determining
-   * which storage can handle a particular storage access operation and
-   * configuration object.
-   *
-   * @param string $access_operation
-   *   The operation access level; either 'read' or 'write'. Use 'write' both
-   *   for saving and deleting configuration.
-   * @param string $name
-   *   The name of the configuration object that is operated on.
-   *
-   * @return Drupal\Core\Config\StorageInterface
-   *   The storage controller instance that can handle the requested operation.
-   *
-   * @throws Drupal\Core\Config\ConfigException
-   *
-   * @todo Allow write operations to write to multiple storages.
-   */
-  public function selectStorage($access_operation, $name) {
-    // Determine the appropriate storage controller to use.
-    // Take the first defined storage that allows $op.
-    foreach ($this->storageInfo as $class => $storage_config) {
-      if (!empty($storage_config[$access_operation])) {
-        $storage_class = $class;
-        break;
-      }
-    }
-    if (!isset($storage_class)) {
-      throw new ConfigException("Failed to find storage controller that allows $access_operation access for $name.");
-    }
-
-    // Instantiate a new storage controller object, if there is none yet.
-    if (!isset($this->storageInstances[$storage_class])) {
-      $this->storageInstances[$storage_class] = new $storage_class($this->storageInfo[$storage_class]);
-    }
-    return $this->storageInstances[$storage_class];
-  }
-}
diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
index 3dc0df5..28ba9a6 100644
--- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
+++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
@@ -30,25 +30,11 @@ class ContainerBuilder extends BaseContainerBuilder {
     // Register the default language content.
     $this->register(LANGUAGE_TYPE_CONTENT, 'Drupal\\Core\\Language\\Language');
 
-    // Register configuration storage dispatcher.
-    $this->setParameter('config.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,
-      ),
-    ));
-    $this->register('config.storage.dispatcher', 'Drupal\Core\Config\StorageDispatcher')
-      ->addArgument('%config.storage.info%');
+    // Register configuration storage class.
+    $this->register('config.storage', 'Drupal\Core\Config\DatabaseStorage');
 
     // Register configuration object factory.
     $this->register('config.factory', 'Drupal\Core\Config\ConfigFactory')
-      ->addArgument(new Reference('config.storage.dispatcher'));
+      ->addArgument(new Reference('config.storage'));
   }
 }
