diff --git a/lib/classes/PluginAdministration.php b/lib/classes/PluginAdministration.php
index caf80ceab22fbe170438f59ea3f5ffe750601fd5..dc3f3bcc51dc095ca6d7acf78059c0d4447c3efa 100644
--- a/lib/classes/PluginAdministration.php
+++ b/lib/classes/PluginAdministration.php
@@ -100,6 +100,9 @@ class PluginAdministration
                 rmdirr($plugindir_old);
                 rename($plugindir, $plugindir_old);
             }
+
+            // avoid loading old version of the class from opcache (see ticket #569)
+            ini_set('opcache.enable', 0);
         }
 
         // move directory to final destination
@@ -119,10 +122,6 @@ class PluginAdministration
 
         rename($tmpplugindir, $plugindir);
 
-        // wait until opcache.revalidate_freq expires
-        $revalidate_freq = min(ini_get('opcache.revalidate_freq'), 10);
-        sleep($revalidate_freq);
-
         // create database schema if needed
         $this->createDBSchema($plugindir, $manifest, $pluginregistered);