diff --git a/core/js/mimetype.js b/core/js/mimetype.js
index d22b0a2378aad4c0f9ffeee513d81635395dbacb..b0de8eb841136d547bd0a989427b87e5a3df2a3a 100644
--- a/core/js/mimetype.js
+++ b/core/js/mimetype.js
@@ -70,7 +70,7 @@ OC.MimeType = {
 			return undefined;
 		}
 
-		if (mimeType in OC.MimeTypeList.aliases) {
+		while (mimeType in OC.MimeTypeList.aliases) {
 			mimeType = OC.MimeTypeList.aliases[mimeType];
 		}
 		if (mimeType in OC.MimeType._mimeTypeIcons) {
diff --git a/lib/private/files/type/detection.php b/lib/private/files/type/detection.php
index 0c647ab44c69095db1034b4fce9e82f5bfdc1851..dc8aff2f30c71a2facb7666ab0b1b0b3035f6d2f 100644
--- a/lib/private/files/type/detection.php
+++ b/lib/private/files/type/detection.php
@@ -269,7 +269,7 @@ class Detection implements IMimeTypeDetector {
 	public function mimeTypeIcon($mimetype) {
 		$this->loadAliases();
 
-		if (isset($this->mimeTypeAlias[$mimetype])) {
+		while (isset($this->mimeTypeAlias[$mimetype])) {
 			$mimetype = $this->mimeTypeAlias[$mimetype];
 		}
 		if (isset($this->mimetypeIcons[$mimetype])) {