diff --git a/core/composer.json b/core/composer.json
index 64928b1..113a2b3 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -9,5 +9,11 @@
     "symfony/yaml": "2.1.*",
     "twig/twig": "1.8.*"
   },
+  "autoload": {
+    "psr-0": {
+      "Drupal\\Core": "lib",
+      "Drupal\\Component": "lib"
+    }
+  },
   "minimum-stability": "beta"
 }
diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 22eb5b8..9e731d9 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -3038,32 +3038,17 @@ function drupal_classloader() {
         break;
     }
 
-    // Register explicit PSR-0 vendor namespaces.
-    $loader->registerNamespaces(array(
-      // All Symfony-borrowed code lives in /core/vendor/symfony.
-      'Symfony\Component\ClassLoader' => DRUPAL_ROOT . '/core/vendor/symfony/class-loader',
-      'Symfony\Component\DependencyInjection' => DRUPAL_ROOT . '/core/vendor/symfony/dependency-injection',
-      'Symfony\Component\EventDispatcher' => DRUPAL_ROOT . '/core/vendor/symfony/event-dispatcher',
-      'Symfony\Component\HttpFoundation' => DRUPAL_ROOT . '/core/vendor/symfony/http-foundation',
-      'Symfony\Component\HttpKernel' => DRUPAL_ROOT . '/core/vendor/symfony/http-kernel',
-      'Symfony\Component\Routing' => DRUPAL_ROOT . '/core/vendor/symfony/routing',
-      'Symfony\Component\Yaml' => DRUPAL_ROOT . '/core/vendor/symfony/yaml',
-    ));
-    // Register PEAR-style vendor namespaces.
-    $loader->registerPrefixes(array(
-      // All Twig-borrowed code lives in /core/vendor/twig.
-      'Twig' => DRUPAL_ROOT . '/core/vendor/twig/twig/lib',
-    ));
-    // Register the Drupal namespace for classes in core as a fallback.
-    // This allows to register additional namespaces within the Drupal namespace
-    // (e.g., for modules) and avoids an additional file_exists() on the Drupal
-    // core namespace, since the class loader can already determine the best
-    // namespace match based on a string comparison. It further allows modules
-    // to register/overload namespaces in Drupal core.
-    $loader->registerNamespaceFallbacks(array(
-      // All Drupal-namespaced code in core lives in /core/lib/Drupal.
-      'Drupal' => DRUPAL_ROOT . '/core/lib',
-    ));
+    // Load the PSR-0 namespaces.
+    $namespaces = include DRUPAL_ROOT . '/core/vendor/composer/autoload_namespaces.php';
+    foreach ($namespaces as $namespace => $path) {
+      // Determine whether we are registering with a PEAR-like namespace prefix.
+      if (strpos($namespace, '_')) {
+        $loader->registerPrefix($namespace, $path);
+      }
+      else {
+        $loader->registerNamespace($namespace, $path);
+      }
+    }
 
     // Register the loader with PHP.
     $loader->register();
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 6ae0e91..922baa5 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -14,4 +14,6 @@ return array(
     'Symfony\\Component\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/',
     'Symfony\\Component\\DependencyInjection' => $vendorDir . '/symfony/dependency-injection/',
     'Symfony\\Component\\ClassLoader' => $vendorDir . '/symfony/class-loader/',
+    'Drupal\\Core' => $baseDir . '/lib',
+    'Drupal\\Component' => $baseDir . '/lib',
 );
