diff --git a/lib/private/preview.php b/lib/private/preview.php
index f50bdcb4c9eba6b7e1b45c846dcc42db795d3a09..778007b21fd40fc2154d9f9aa0ae0a8aa8cf262b 100644
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -892,16 +892,6 @@ class Preview {
 			self::initProviders();
 		}
 
-		// FIXME: Ugly hack to prevent SVG of being returned if the SVG
-		// provider is not enabled.
-		// This is required because the preview system is designed in a
-		// bad way and relies on opt-in with asterisks (i.e. image/*)
-		// which will lead to the fact that a SVG will also match the image
-		// provider.
-		if($mimeType === 'image/svg+xml' && !array_key_exists('/image\/svg\+xml/', self::$providers)) {
-			return false;
-		}
-
 		foreach(self::$providers as $supportedMimetype => $provider) {
 			if(preg_match($supportedMimetype, $mimeType)) {
 				return true;
diff --git a/lib/private/preview/image.php b/lib/private/preview/image.php
index ec5b87befea0d5e1724848794778c82bdb85ea30..7bcbddc649e898745eddff3bd3d775d6ac4d0ac4 100644
--- a/lib/private/preview/image.php
+++ b/lib/private/preview/image.php
@@ -11,7 +11,7 @@ namespace OC\Preview;
 class Image extends Provider {
 
 	public function getMimeType() {
-		return '/image\/.*/';
+		return '/image\/(?!tiff$)(?!svg.*).*/';
 	}
 
 	public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {