diff --git a/typo3/sysext/core/Classes/Resource/File.php b/typo3/sysext/core/Classes/Resource/File.php
index 6e4c783328778308c6e4c768a89c01abe7200d12..114b0d7217cf99c7b21843c2743669b652645462 100644
--- a/typo3/sysext/core/Classes/Resource/File.php
+++ b/typo3/sysext/core/Classes/Resource/File.php
@@ -250,6 +250,22 @@ class File extends AbstractFile {
 		}
 	}
 
+	/**
+	 * Updates MetaData properties
+	 *
+	 * @internal Do not use outside the FileAbstraction Layer classes
+	 *
+	 * @param array $properties
+	 * @return void
+	 */
+	public function _updateMetaDataProperties(array $properties) {
+		if ($this->metaDataProperties !== NULL) {
+			$this->metaDataProperties = array_merge($this->metaDataProperties, $properties);
+		} else {
+			$this->metaDataProperties = $properties;
+		}
+	}
+
 	/**
 	 * Returns the names of all properties that have been updated in this record
 	 *
diff --git a/typo3/sysext/core/Classes/Resource/Index/Indexer.php b/typo3/sysext/core/Classes/Resource/Index/Indexer.php
index a0d133d2e9d7b41c8b648c4c96333ae67eee379b..898879fee658bae8a4a1c5bf453d7df20b0f786f 100644
--- a/typo3/sysext/core/Classes/Resource/Index/Indexer.php
+++ b/typo3/sysext/core/Classes/Resource/Index/Indexer.php
@@ -120,6 +120,7 @@ class Indexer {
 			foreach ($newMetaData as $data) {
 				$metaData = array_merge($metaData, $data);
 			}
+			$fileObject->_updateMetaDataProperties($metaData);
 			$this->getMetaDataRepository()->update($fileObject->getUid(), $metaData);
 			$this->getFileIndexRepository()->updateIndexingTime($fileObject->getUid());
 		}
@@ -220,6 +221,7 @@ class Indexer {
 			$metaData = array();
 			list($metaData['width'], $metaData['height']) = getimagesize($rawFileLocation);
 			$this->getMetaDataRepository()->update($fileObject->getUid(), $metaData);
+			$fileObject->_updateMetaDataProperties($metaData);
 		}
 	}