diff --git a/lib/base.php b/lib/base.php
index 63aad4518abd5ad8a8cb5a7aba89c56f5e0b7a09..a4b5e9e01bf11f7bd3ff61733bdf8c750e515050 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -552,10 +552,6 @@ class OC {
 			exit();
 		}
 
-		foreach(OC::$APPSROOTS as $appRoot) {
-			self::$loader->addValidRoot($appRoot['path']);
-		}
-
 		// setup the basic server
 		self::$server = new \OC\Server(\OC::$WEBROOT);
 		\OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
diff --git a/lib/private/app.php b/lib/private/app.php
index f1a1d27ae66194b8cb85b67942b5bedf6ddea097..f6a81f9945f3fa432064107c3fffab0e9c8a8016 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -105,7 +105,6 @@ class OC_App {
 		ob_start();
 		foreach ($apps as $app) {
 			if ((is_null($types) or self::isType($app, $types)) && !in_array($app, self::$loadedApps)) {
-				self::$loadedApps[] = $app;
 				self::loadApp($app);
 			}
 		}
@@ -122,6 +121,8 @@ class OC_App {
 	 * @throws \OC\NeedsUpdateException
 	 */
 	public static function loadApp($app, $checkUpgrade = true) {
+		self::$loadedApps[] = $app;
+		\OC::$loader->addValidRoot(self::getAppPath($app));
 		if (is_file(self::getAppPath($app) . '/appinfo/app.php')) {
 			\OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app);
 			if ($checkUpgrade and self::shouldUpgrade($app)) {