diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index 2ddc3ee..6e251b9 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -975,7 +975,16 @@ protected function initializeSettings(Request $request) {
     if ($class_loader_class == get_class($this->classLoader)
         && Settings::get('class_loader_auto_detect', TRUE)
         && function_exists('apc_fetch')) {
-      $prefix = Settings::getApcuPrefix('class_loader', $this->root);
+      // We need to hash any file path within the vendor directory, so that we
+      // can modify our APC identifier with it. That way, if someone moves the
+      // vendor directory, ApcClassLoader won't crash. We choose Request because
+      // this function wouldn't be executing if the class loader didn't already
+      // know where it is.
+      // @todo: Maybe remove this after https://www.drupal.org/node/2380389
+      $request_class_path = $this->classLoader->findFile('Symfony\Component\HttpFoundation\Request');
+      // @todo: figure out a better way to make this hash.
+      $identifier = 'class_loader_' . hash_hmac('sha256', $request_class_path, '');
+      $prefix = Settings::getApcuPrefix($identifier, $this->root);
       $apc_loader = new \Symfony\Component\ClassLoader\ApcClassLoader($prefix, $this->classLoader);
       $this->classLoader->unregister();
       $apc_loader->register();
