diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 3453b2a..7443a8b 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2,8 +2,8 @@
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Database\Database;
-use Symfony\Component\ClassLoader\UniversalClassLoader;
-use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
+use Symfony\Component\ClassLoader\ApcClassLoader;
+use Symfony\Component\ClassLoader\ClassLoader;
 use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Reference;
@@ -3111,50 +3111,29 @@ function drupal_classloader() {
 
   if (!isset($loader)) {
     // Include the Symfony ClassLoader for loading PSR-0-compatible classes.
-    require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+    require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php';
+
+    $loader = new ClassLoader();
 
     // @todo Use a cleaner way than variable_get() to switch autoloaders.
-    switch (variable_get('autoloader_mode', 'default')) {
-      case 'apc':
-        if (function_exists('apc_store')) {
-          require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
-          $loader = new ApcUniversalClassLoader('drupal.' . $GLOBALS['drupal_hash_salt']);
-          break;
-        }
-      // Fall through to the default loader if APC was not loaded, so that the
-      // site does not fail completely.
-      case 'dev':
-      case 'default':
-      default:
-        $loader = new UniversalClassLoader();
-        break;
+    if (variable_get('autoloader_mode', 'default') == 'apc') {
+      require_once DRUPAL_ROOT . '/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php';
+      $loader = new ApcClassLoader('drupal.' . $GLOBALS['drupal_hash_salt'], $loader);
     }
 
     // Register explicit namespaces for Drupal core.
     // The majority of namespaces that need to be resolved are from Drupal core,
     // so registering/setting them before vendor libraries saves a few
     // additional cycles per class lookup.
-    $loader->registerNamespaces(array(
+    $loader->addPrefixes(array(
       'Drupal\Core' => DRUPAL_ROOT . '/core/lib',
       'Drupal\Component' => DRUPAL_ROOT . '/core/lib',
     ));
 
+
     // Register namespaces for vendor libraries managed by Composer.
     $namespaces = require DRUPAL_ROOT . '/core/vendor/composer/autoload_namespaces.php';
-    $prefixes = array();
-    foreach ($namespaces as $namespace => $path) {
-      // Composer combines libraries that use PHP 5.3 namespaces and ones that
-      // use PEAR-style class prefixes in a single array, but the Symfony class
-      // loader requires them to be registered separately. PSR-0 disallows
-      // underscores in namespace names and requires at least one in a
-      // PEAR-style class prefix.
-      if (strpos($namespace, '_') !== FALSE) {
-        $prefixes[$namespace] = $path;
-        unset($namespaces[$namespace]);
-      }
-    }
-    $loader->registerPrefixes($prefixes);
-    $loader->registerNamespaces($namespaces);
+    $loader->addPrefixes($namespaces);
 
     // Register the loader with PHP.
     $loader->register();
@@ -3172,7 +3151,7 @@ function drupal_classloader() {
  */
 function drupal_classloader_register($name, $path) {
   $loader = drupal_classloader();
-  $loader->registerNamespace('Drupal\\' . $name, DRUPAL_ROOT . '/' . $path . '/lib');
+  $loader->addPrefix('Drupal\\' . $name, DRUPAL_ROOT . '/' . $path . '/lib');
 }
 
 /**
diff --git a/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php b/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
index 4b1dcd4..0d6b729 100644
--- a/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
+++ b/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
@@ -46,13 +46,13 @@ public function getDefinitions() {
     // Register the namespace of classes that can be used for annotations.
     AnnotationRegistry::registerAutoloadNamespace('Drupal\Core\Annotation', array(DRUPAL_ROOT . '/core/lib'));
     // Get all PSR-0 namespaces.
-    $namespaces = drupal_classloader()->getNamespaces();
-    foreach ($namespaces as $ns => $namespace_dirs) {
+    $prefixes = drupal_classloader()->getPrefixes();
+    foreach ($prefixes as $ns => $prefix_dirs) {
 
       // OS-Safe directory separators.
       $ns = str_replace('\\', DIRECTORY_SEPARATOR, $ns);
 
-      foreach ($namespace_dirs as $dir) {
+      foreach ($prefix_dirs as $dir) {
         // Check for the pre-determined directory structure to find plugins.
         $prefix = implode(DIRECTORY_SEPARATOR, array(
           $ns,
