diff --git a/typo3/sysext/install/Classes/CoreUpdates/CompatVersionUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/CompatVersionUpdate.php
index 1216ddd4181be163d08d54377b6afecc1161a59b..e95543d6f27f2c4edb8def4350280b4963cb8f8e 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/CompatVersionUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/CompatVersionUpdate.php
@@ -178,7 +178,7 @@ class CompatVersionUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @return 	boolean		TRUE if update succeeded, FALSE otherwise
 	 * @todo Define visibility
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$customMessages = '';
 		// if we just set it to an older version
 		if ($this->userInput['version']) {
diff --git a/typo3/sysext/install/Classes/CoreUpdates/CscSplitUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/CscSplitUpdate.php
index 4d0825e082cbdb6ff3b6e1f345472fb41a5c8472..77af83b0d9a18ce93880b532d96e912463e35f78 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/CscSplitUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/CscSplitUpdate.php
@@ -60,7 +60,7 @@ class CscSplitUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @return 	boolean		TRUE if update succeeded, FALSE otherwise
 	 * @todo Define visibility
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$templates = $this->getTemplatesWithCsc($dbQueries, $customMessages);
 		$templates = $this->findUpdateableTemplatesWithCsc($templates);
 		$this->updateCscTemplates($templates, $dbQueries, $customMessages);
diff --git a/typo3/sysext/install/Classes/CoreUpdates/FlagsFromSpriteUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/FlagsFromSpriteUpdate.php
index 8cfc389825fa4b5d0adea1f3ba4cd44f764a3ee7..d3a486eb612d222e2002b0e249e37c0ebdb84451 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/FlagsFromSpriteUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/FlagsFromSpriteUpdate.php
@@ -61,7 +61,7 @@ class FlagsFromSpriteUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		whether it worked (TRUE) or not (FALSE)
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$result = FALSE;
 		if ($this->versionNumber >= 4005000) {
 			$sql = 'UPDATE sys_language SET flag=REPLACE(flag, \'.gif\', \'\') WHERE flag LIKE \'%.gif\'';
diff --git a/typo3/sysext/install/Classes/CoreUpdates/ImagecolsUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/ImagecolsUpdate.php
index b9372bf8ec4913c3b7327b2677c85ef42aa2f0eb..bcbbffa9ad7d2d2b30e1be982afd9764b0ef99a2 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/ImagecolsUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/ImagecolsUpdate.php
@@ -62,7 +62,7 @@ class ImagecolsUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		whether it worked (TRUE) or not (FALSE)
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$result = FALSE;
 		if ($this->versionNumber >= 4003000) {
 			$updateArray = array(
diff --git a/typo3/sysext/install/Classes/CoreUpdates/ImagelinkUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/ImagelinkUpdate.php
index 88fbb031d5167c45b260be3210008e4a03d12932..fe4627d0e73bf22598997f9a7c749e4c912f0457 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/ImagelinkUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/ImagelinkUpdate.php
@@ -62,7 +62,7 @@ class ImagelinkUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		TRUE on success, FALSE on error
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$result = TRUE;
 		if ($this->versionNumber >= 4005000) {
 			$affectedRows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid, image_link', 'tt_content', 'image_link<>\'\' AND image_link LIKE \'%,%\' AND image_link NOT LIKE \'%\\n%\'');
diff --git a/typo3/sysext/install/Classes/CoreUpdates/InstallNewSysextsUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/InstallNewSysextsUpdate.php
index 08aa8abba70fc228b85de02ae6ff096ae6e51ac4..7649776d31873de32480c73ee10d44a12f1973f5 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/InstallNewSysextsUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/InstallNewSysextsUpdate.php
@@ -128,7 +128,7 @@ class InstallNewSysextsUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		whether it worked (TRUE) or not (FALSE)
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		// Get extension keys that were submitted by the user to be installed and that are valid for this update wizard
 		if (is_array($this->pObj->INSTALL['update']['installNewSystemExtensions']['sysext'])) {
 			$extArray = array_intersect($this->newSystemExtensions, array_keys($this->pObj->INSTALL['update']['installNewSystemExtensions']['sysext']));
diff --git a/typo3/sysext/install/Classes/CoreUpdates/MergeAdvancedUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/MergeAdvancedUpdate.php
index 739bd245144857e7a98b115a9a7ac6f11b8416bc..0f5b6bd2795773010fac9fedb264bc5bd234a10f 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/MergeAdvancedUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/MergeAdvancedUpdate.php
@@ -61,7 +61,7 @@ class MergeAdvancedUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		whether it worked (TRUE) or not (FALSE)
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$result = FALSE;
 		if ($this->versionNumber >= 4002000) {
 			$updateArray = array(
diff --git a/typo3/sysext/install/Classes/CoreUpdates/NotInMenuUpdate.php b/typo3/sysext/install/Classes/CoreUpdates/NotInMenuUpdate.php
index 6c3fa38c0d8c3f5e2664207d09da282dba26e633..cc21c9d69537792a2d2cb8138448bc0880cccaae 100644
--- a/typo3/sysext/install/Classes/CoreUpdates/NotInMenuUpdate.php
+++ b/typo3/sysext/install/Classes/CoreUpdates/NotInMenuUpdate.php
@@ -62,7 +62,7 @@ class NotInMenuUpdate extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		whether it worked (TRUE) or not (FALSE)
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$result = FALSE;
 		if ($this->versionNumber >= 4002000) {
 			$updateArray = array(
diff --git a/typo3/sysext/install/Classes/Updates/AbstractUpdate.php b/typo3/sysext/install/Classes/Updates/AbstractUpdate.php
index 33ea3b8bcdef769a8b4c602d4dedba0572eb919b..63587cf5a06c92aa7bc1090dfad321072fa15a26 100644
--- a/typo3/sysext/install/Classes/Updates/AbstractUpdate.php
+++ b/typo3/sysext/install/Classes/Updates/AbstractUpdate.php
@@ -150,6 +150,23 @@ abstract class AbstractUpdate {
 		return $extensionManagerConnection;
 	}
 
+	/**
+	 * Checks whether updates are required.
+	 *
+	 * @param string &$description: The description for the update
+	 * @return boolean Whether an update is required (TRUE) or not (FALSE)
+	 */
+	abstract public function checkForUpdate(&$description);
+
+	/**
+	 * Performs the accordant updates.
+	 *
+	 * @param array &$dbQueries: queries done in this update
+	 * @param mixed &$customMessages: custom messages
+	 * @return boolean Whether everything went smoothly or not
+	 */
+	abstract public function performUpdate(array &$dbQueries, &$customMessages);
+
 	/**
 	 * This method can be called to install extensions following all proper processes
 	 * (e.g. installing in extList, respecting priority, etc.)
diff --git a/typo3/sysext/install/Classes/Updates/FilemountUpdateWizard.php b/typo3/sysext/install/Classes/Updates/FilemountUpdateWizard.php
index e79fdda7f26c18259ce13a4fae0acfc83dc5ca82..95a07cbcf39f74f4b89a7286bae87cb415fbb685 100644
--- a/typo3/sysext/install/Classes/Updates/FilemountUpdateWizard.php
+++ b/typo3/sysext/install/Classes/Updates/FilemountUpdateWizard.php
@@ -96,7 +96,7 @@ class FilemountUpdateWizard extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		TRUE on success, FALSE on error
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$this->init();
 		$this->migrateAbsoluteFilemounts();
 		$this->migrateRelativeFilemounts();
diff --git a/typo3/sysext/install/Classes/Updates/InitUpdateWizard.php b/typo3/sysext/install/Classes/Updates/InitUpdateWizard.php
index a94fb956d60480740e16e623306d5b33087ebea6..7ea92f6c8834ce6883e0ee7f153b46bdb0f96af5 100644
--- a/typo3/sysext/install/Classes/Updates/InitUpdateWizard.php
+++ b/typo3/sysext/install/Classes/Updates/InitUpdateWizard.php
@@ -68,7 +68,7 @@ class InitUpdateWizard extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		TRUE on success, FALSE on error
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$updates = $this->getRequiredUpdates();
 		foreach ($updates as $update) {
 			$GLOBALS['TYPO3_DB']->admin_query($update);
diff --git a/typo3/sysext/install/Classes/Updates/TceformsUpdateWizard.php b/typo3/sysext/install/Classes/Updates/TceformsUpdateWizard.php
index aeaba614ae8f50a0f825153f1b3985f7b988381d..7ccd434c845563351765b4a911048c11de977f2e 100644
--- a/typo3/sysext/install/Classes/Updates/TceformsUpdateWizard.php
+++ b/typo3/sysext/install/Classes/Updates/TceformsUpdateWizard.php
@@ -72,7 +72,7 @@ class TceformsUpdateWizard extends \TYPO3\CMS\Install\Updates\AbstractUpdate {
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		TRUE on success, FALSE on error
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$this->init();
 		// Function below copied from sysext/install/updates/class.tx_coreupdates_imagelink.php
 		$tables = array(
diff --git a/typo3/sysext/install/Classes/Updates/TtContentUploadsUpdateWizard.php b/typo3/sysext/install/Classes/Updates/TtContentUploadsUpdateWizard.php
index 050bfd74ceab0aeb2652595a773c86c578b11871..50662d54ec56f7dc636d3853dc2c9c762c051a8d 100644
--- a/typo3/sysext/install/Classes/Updates/TtContentUploadsUpdateWizard.php
+++ b/typo3/sysext/install/Classes/Updates/TtContentUploadsUpdateWizard.php
@@ -113,7 +113,7 @@ class TtContentUploadsUpdateWizard extends \TYPO3\CMS\Install\Updates\AbstractUp
 	 * @param 	mixed		&$customMessages: custom messages
 	 * @return 	boolean		TRUE on success, FALSE on error
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$this->init();
 		$records = $this->getRecordsFromTable('tt_content');
 		$this->checkPrerequisites();
diff --git a/typo3/sysext/rtehtmlarea/Classes/Hook/Install/DeprecatedRteProperties.php b/typo3/sysext/rtehtmlarea/Classes/Hook/Install/DeprecatedRteProperties.php
index 9de35e0ea289339a4c73814973b654799f92ebf3..08c8325f1b6ae96df8aacc239582c3d9511c3efc 100644
--- a/typo3/sysext/rtehtmlarea/Classes/Hook/Install/DeprecatedRteProperties.php
+++ b/typo3/sysext/rtehtmlarea/Classes/Hook/Install/DeprecatedRteProperties.php
@@ -151,7 +151,7 @@ class DeprecatedRteProperties extends \TYPO3\CMS\Install\Updates\AbstractUpdate
 	 * @param 	string		pointer to output custom messages
 	 * @return 	boolean		TRUE if update succeeded, FALSE otherwise
 	 */
-	public function performUpdate(&$dbQueries, &$customMessages) {
+	public function performUpdate(array &$dbQueries, &$customMessages) {
 		$success = FALSE;
 		$pages = $this->getPagesWithDeprecatedRteProperties($dbQueries, $customMessages);
 		if (empty($customMessages)) {