diff --git a/core/lib/Drupal/Component/Utility/OpCodeCache.php b/core/lib/Drupal/Component/Utility/OpCodeCache.php
index eb17c0d9f9b7a0a5cfbc4df2065e90f0355474c3..1d54624548df93647a2bd562387f55a8c5ae280a 100644
--- a/core/lib/Drupal/Component/Utility/OpCodeCache.php
+++ b/core/lib/Drupal/Component/Utility/OpCodeCache.php
@@ -29,7 +29,11 @@ public static function invalidate($pathname) {
     if (extension_loaded('Zend OPcache')) {
       opcache_invalidate($pathname, TRUE);
     }
-    if (extension_loaded('apc')) {
+    // If apcu extenstion is enabled in PHP 5.5 or greater it emulates apc.
+    // This is to provide an easy upgrade path if you are using apc's user
+    // caching however the emulation does not extend to opcode caching.
+    // Therefore we need to check if the function exists as well.
+    if (extension_loaded('apc') && function_exists('apc_delete_file')) {
       // apc_delete_file() throws a PHP warning in case the specified file was
       // not compiled yet.
       // @see http://php.net/manual/en/function.apc-delete-file.php