diff --git a/typo3/sysext/core/Classes/Package/Package.php b/typo3/sysext/core/Classes/Package/Package.php
index 02e54707c7f5d908bb1f33161cd90360b0fc61b4..3de91c659f96606418af0a7feaaa0d9dc996bdbc 100644
--- a/typo3/sysext/core/Classes/Package/Package.php
+++ b/typo3/sysext/core/Classes/Package/Package.php
@@ -111,6 +111,7 @@ class Package implements PackageInterface {
 			if (!$this->loadExtensionEmconf()) {
 				throw new Exception\InvalidPackageManifestException('No valid ext_emconf.php file found for package "' . $packageKey . '".', 1360403545);
 			}
+			$this->mapExtensionManagerConfigurationToComposerManifest();
 		}
 		$this->loadFlagsFromComposerManifest();
 	}
@@ -201,7 +202,6 @@ class Package implements PackageInterface {
 			include $path;
 			if (is_array($EM_CONF[$_EXTKEY])) {
 				$this->extensionManagerConfiguration = $EM_CONF[$_EXTKEY];
-				$this->mapExtensionManagerConfigurationToComposerManifest();
 				return TRUE;
 			}
 		}
@@ -263,7 +263,16 @@ class Package implements PackageInterface {
 		if ($this->packageMetaData === NULL) {
 			$this->packageMetaData = new MetaData($this->getPackageKey());
 			$this->packageMetaData->setDescription($this->getValueFromComposerManifest('description'));
-			$this->packageMetaData->setVersion($this->getValueFromComposerManifest('version'));
+			$version = $this->getValueFromComposerManifest('version');
+			if ($version !== NULL) {
+				$this->packageMetaData->setVersion($version);
+			} else {
+				// As version is important within the core we need to make sure it is available
+				// Fetch it from ext_emconf.php
+				if ($this->loadExtensionEmconf()) {
+					$this->packageMetaData->setVersion($this->extensionManagerConfiguration['version']);
+				}
+			}
 			$requirements = $this->getValueFromComposerManifest('require');
 			if ($requirements !== NULL) {
 				foreach ($requirements as $requirement => $version) {