diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php
index 2af402196ae84ba50327317dab0f590d12c21232..d087720c11aceec0e85487a5b3d6915c1790805c 100644
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -354,6 +354,19 @@ class Checker {
 			throw new InvalidSignatureException('Signature could not get verified.');
 		}
 
+		// Fixes for the updater as shipped with ownCloud 9.0.x: The updater is
+		// replaced after the code integrity check is performed.
+		//
+		// Due to this reason we exclude the whole updater/ folder from the code
+		// integrity check.
+		if($basePath === $this->environmentHelper->getServerRoot()) {
+			foreach($expectedHashes as $fileName => $hash) {
+				if(strpos($fileName, 'updater/') === 0) {
+					unset($expectedHashes[$fileName]);
+				}
+			}
+		}
+
 		// Compare the list of files which are not identical
 		$currentInstanceHashes = $this->generateHashes($this->getFolderIterator($basePath), $basePath);
 		$differencesA = array_diff($expectedHashes, $currentInstanceHashes);
diff --git a/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php b/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php
index c8db8022112a1e9596898dd9d1945792cb5d3b3a..3885f3dfa6a310e805bbcfbd50ca0c85cd6f5fb5 100644
--- a/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php
+++ b/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php
@@ -29,7 +29,7 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator {
 		parent::__construct($iterator);
 
 		$appFolders = \OC::$APPSROOTS;
-		foreach($appFolders as $key => $appFolder) {
+		foreach($appFolders as $key => $appFolder) {c
 			$appFolders[$key] = rtrim($appFolder['path'], '/');
 		}
 
@@ -40,6 +40,11 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator {
 			rtrim($root . '/apps', '/'),
 			rtrim($root . '/assets', '/'),
 			rtrim($root . '/lost+found', '/'),
+			// Ignore folders generated by updater since the updater is replaced
+			// after the integrity check is run.
+			// See https://github.com/owncloud/updater/issues/318#issuecomment-212497846
+			rtrim($root . '/updater', '/'),
+			rtrim($root . '/_oc_upgrade', '/'),
 		];
 		$customDataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', '');
 		if($customDataDir !== '') {