diff --git a/lib/base.php b/lib/base.php
index 34fa178ebf7260b5a262ce1086c23d72dda41bf9..dbfe0eb2f278b812e6c088b7389e30e9b4e5db75 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -736,6 +736,21 @@ class OC {
 			self::checkUpgrade();
 		}
 
+		// Load minimum set of apps
+		if (!self::checkUpgrade(false)
+			&& !$systemConfig->getValue('maintenance', false)
+			&& !\OCP\Util::needUpgrade()) {
+			// For logged-in users: Load everything
+			if(OC_User::isLoggedIn()) {
+				OC_App::loadApps();
+			} else {
+				// For guests: Load only authentication, filesystem and logging
+				OC_App::loadApps(array('authentication'));
+				OC_App::loadApps(array('filesystem', 'logging'));
+				\OC_User::tryBasicAuthLogin();
+			}
+		}
+
 		if (!self::$CLI and (!isset($_GET["logout"]) or ($_GET["logout"] !== 'true'))) {
 			try {
 				if (!$systemConfig->getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
@@ -755,19 +770,6 @@ class OC {
 			}
 		}
 
-		// Load minimum set of apps
-		if (!self::checkUpgrade(false)) {
-			// For logged-in users: Load everything
-			if(OC_User::isLoggedIn()) {
-				OC_App::loadApps();
-			} else {
-				// For guests: Load only authentication, filesystem and logging
-				OC_App::loadApps(array('authentication'));
-				OC_App::loadApps(array('filesystem', 'logging'));
-				\OC_User::tryBasicAuthLogin();
-			}
-		}
-
 		// Handle redirect URL for logged in users
 		if (isset($_REQUEST['redirect_url']) && OC_User::isLoggedIn()) {
 			$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url']));