diff --git a/core/ajax/update.php b/core/ajax/update.php
index 6015a901eb795c24c424b3d0c02f4367c2dc344d..9d0c6f89f1bafed35fdc112ff8e56e81476b9887 100644
--- a/core/ajax/update.php
+++ b/core/ajax/update.php
@@ -5,6 +5,8 @@ require_once '../../lib/base.php';
 
 if (OC::checkUpgrade(false)) {
 	\OC_DB::enableCaching(false);
+	OC_Config::setValue('maintenance', true);
+	OC_Log::write('core', 'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, OC_Log::WARN);
 	$updateEventSource = new OC_EventSource();
 	$watcher = new UpdateWatcher($updateEventSource);
 	OC_Hook::connect('update', 'success', $watcher, 'success');
@@ -99,6 +101,7 @@ class UpdateWatcher {
 		OC_Util::obEnd();
 		$this->eventSource->send('failure', $message);
 		$this->eventSource->close();
+		OC_Config::setValue('maintenance', false);
 		die();
 	}
 
diff --git a/lib/base.php b/lib/base.php
index 8633ae9b637a1e1d0de3fed2b37fb3983721d014..1e4bbff49cfe4af9d10302b569c0a6fefdb9db6a 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -282,10 +282,6 @@ class OC {
 			$currentVersion = implode('.', OC_Util::getVersion());
 			if (version_compare($currentVersion, $installedVersion, '>')) {
 				if ($showTemplate && !OC_Config::getValue('maintenance', false)) {
-					OC_Config::setValue('maintenance', true);
-					OC_Log::write('core',
-						'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion,
-						OC_Log::WARN);
 					$minimizerCSS = new OC_Minimizer_CSS();
 					$minimizerCSS->clearCache();
 					$minimizerJS = new OC_Minimizer_JS();