diff --git a/core/routes.php b/core/routes.php
index 41e82f8a73d28fac9ff520a09201fb9fb1cc54f9..c0e658b26dc7d483045759bf1ac228fabb03782e 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -42,12 +42,13 @@ $this->create('js_config', '/core/js/config.js')
 // Routing
 $this->create('core_ajax_routes', '/core/routes.json')
 	->action('OC_Router', 'JSRoutes');
+OC::$CLASSPATH['OC\PreviewManager'] = 'lib/preview.php';
 $this->create('core_ajax_preview', '/core/preview.png')
-	->action('OC\Preview', 'previewRouter');
+	->action('OC\PreviewManager', 'previewRouter');
 $this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png')
-	->action('OC\Preview', 'trashbinPreviewRouter');
+	->action('OC\PreviewManager', 'trashbinPreviewRouter');
 $this->create('core_ajax_public_preview', '/core/publicpreview.png')
-	->action('OC\Preview', 'publicPreviewRouter');
+	->action('OC\PreviewManager', 'publicPreviewRouter');
 OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php';
 $this->create('core_lostpassword_index', '/lostpassword/')
 	->get()
diff --git a/lib/preview.php b/lib/preview.php
index cc287595f400d1856b4259b05f070c0a8a45ad85..73e01a9e552552ccf363a9de87aab54bddd59f18 100755
--- a/lib/preview.php
+++ b/lib/preview.php
@@ -44,10 +44,6 @@ class Preview {
 	//preview images object
 	private $preview;
 
-	//preview providers
-	static private $providers = array();
-	static private $registeredProviders = array();
-
 	/**
 	 * @brief check if thumbnail or bigger version of thumbnail of file is cached
 	 * @param string $user userid - if no user is given, OC_User::getUser will be used
@@ -82,11 +78,13 @@ class Preview {
 		$this->preview = null;
 
 		//check if there are preview backends
-		if(empty(self::$providers)) {
-			self::initProviders();
+		$providers = PreviewManager::getProviders();
+		if(empty($providers)) {
+			PreviewManager::initProviders();
 		}
 
-		if(empty(self::$providers)) {
+		$providers = PreviewManager::getProviders();
+		if(empty($providers)) {
 			\OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR);
 			throw new \Exception('No preview providers');
 		}
@@ -380,7 +378,8 @@ class Preview {
 			$mimetype = $this->fileview->getMimeType($file);
 			$preview = null;
 
-			foreach(self::$providers as $supportedmimetype => $provider) {
+			$providers = PreviewManager::getProviders();
+			foreach($providers as $supportedmimetype => $provider) {
 				if(!preg_match($supportedmimetype, $mimetype)) {
 					continue;
 				}
@@ -544,6 +543,16 @@ class Preview {
 			return;
 		}
 	}
+}
+
+class PreviewManager {
+	//preview providers
+	static private $providers = array();
+	static private $registeredProviders = array();
+
+	public static function getProviders() {
+		return self::$providers;
+	}
 
 	/**
 	 * @brief register a new preview provider to be used
@@ -559,7 +568,7 @@ class Preview {
 	 * @brief create instances of all the registered preview providers
 	 * @return void
 	 */
-	private static function initProviders() {
+	public static function initProviders() {
 		if(count(self::$providers)>0) {
 			return;
 		}
@@ -766,7 +775,7 @@ class Preview {
 		$preview->deleteAllPreviews();
 	}
 	
-	private static function showErrorPreview() {
+	public static function showErrorPreview() {
 		$path = \OC::$SERVERROOT . '/core/img/actions/delete.png';
 		$preview = new \OC_Image($path);
 		$preview->preciseResize(44, 44);
diff --git a/lib/preview/images.php b/lib/preview/images.php
index 987aa9aef0a8640bc90d5d403df73705637790fb..84ab9f1ae43552815dd8226dd51405e083983225 100644
--- a/lib/preview/images.php
+++ b/lib/preview/images.php
@@ -30,4 +30,4 @@ class Image extends Provider {
 	}
 }
 
-\OC\Preview::registerProvider('OC\Preview\Image');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\Image');
\ No newline at end of file
diff --git a/lib/preview/libreoffice-cl.php b/lib/preview/libreoffice-cl.php
index 2749c4867e91db8130ac850427bbdc539b6df386..ffe8de505f70bcaa871ebe97ab66572838fa7ead 100644
--- a/lib/preview/libreoffice-cl.php
+++ b/lib/preview/libreoffice-cl.php
@@ -80,7 +80,7 @@ class MSOfficeDoc extends Office {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOfficeDoc');
 
 //.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
 class MSOffice2003 extends Office {
@@ -91,7 +91,7 @@ class MSOffice2003 extends Office {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\MSOffice2003');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2003');
 
 //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
 class MSOffice2007 extends Office {
@@ -102,7 +102,7 @@ class MSOffice2007 extends Office {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\MSOffice2007');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2007');
 
 //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
 class OpenDocument extends Office {
@@ -113,7 +113,7 @@ class OpenDocument extends Office {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\OpenDocument');
+\OC\PreviewManager::registerProvider('OC\Preview\OpenDocument');
 
 //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
 class StarOffice extends Office {
@@ -124,4 +124,4 @@ class StarOffice extends Office {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\StarOffice');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\StarOffice');
\ No newline at end of file
diff --git a/lib/preview/movies.php b/lib/preview/movies.php
index 8531050d112d8c48d4611990d801fc13c8feeac6..f4452e02fc261da14cf8eafe6decf5f9773bf7d7 100644
--- a/lib/preview/movies.php
+++ b/lib/preview/movies.php
@@ -39,5 +39,5 @@ if(!is_null(shell_exec('ffmpeg -version'))) {
 		}
 	}
 
-	\OC\Preview::registerProvider('OC\Preview\Movie');
+	\OC\PreviewManager::registerProvider('OC\Preview\Movie');
 }
\ No newline at end of file
diff --git a/lib/preview/mp3.php b/lib/preview/mp3.php
index 835ff529000bacecc8aaa56af85354ed17a0eeca..baa24ad129e7294ebae2fdb1a83254a7a0e0cdf5 100644
--- a/lib/preview/mp3.php
+++ b/lib/preview/mp3.php
@@ -43,4 +43,4 @@ class MP3 extends Provider {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\MP3');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\MP3');
\ No newline at end of file
diff --git a/lib/preview/msoffice.php b/lib/preview/msoffice.php
index ccf1d674c7a727ad776e5de9aff157c69a18f686..9f6ea7f74cf44930ad3e6d8f2a32078ee93b3d77 100644
--- a/lib/preview/msoffice.php
+++ b/lib/preview/msoffice.php
@@ -20,7 +20,7 @@ class DOC extends Provider {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\DOC');
+\OC\PreviewManager::registerProvider('OC\Preview\DOC');
 */
 
 class DOCX extends Provider {
@@ -50,7 +50,7 @@ class DOCX extends Provider {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\DOCX');
+\OC\PreviewManager::registerProvider('OC\Preview\DOCX');
 
 class MSOfficeExcel extends Provider {
 
@@ -95,7 +95,7 @@ class XLS extends MSOfficeExcel {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\XLS');
+\OC\PreviewManager::registerProvider('OC\Preview\XLS');
 
 class XLSX extends MSOfficeExcel {
 
@@ -105,7 +105,7 @@ class XLSX extends MSOfficeExcel {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\XLSX');
+\OC\PreviewManager::registerProvider('OC\Preview\XLSX');
 
 /* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ...
 class MSOfficePowerPoint extends Provider {
@@ -128,7 +128,7 @@ class PPT extends MSOfficePowerPoint {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\PPT');
+\OC\PreviewManager::registerProvider('OC\Preview\PPT');
 
 class PPTX extends MSOfficePowerPoint {
 
@@ -138,5 +138,5 @@ class PPTX extends MSOfficePowerPoint {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\PPTX');
+\OC\PreviewManager::registerProvider('OC\Preview\PPTX');
 */
\ No newline at end of file
diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php
index 3eabd2011560d3630f9dc99eb7178c5cae73f373..0d289e9db940a1b1843f3b961fab384e46eb03c8 100644
--- a/lib/preview/pdf.php
+++ b/lib/preview/pdf.php
@@ -36,5 +36,5 @@ if (extension_loaded('imagick')) {
 		}
 	}
 
-	\OC\Preview::registerProvider('OC\Preview\PDF');
+	\OC\PreviewManager::registerProvider('OC\Preview\PDF');
 }
diff --git a/lib/preview/svg.php b/lib/preview/svg.php
index bafaf71b15a5ed5b27a62982b848115d0148994d..5507686af97f340d42e611446e5d14bca2c99489 100644
--- a/lib/preview/svg.php
+++ b/lib/preview/svg.php
@@ -39,6 +39,6 @@ if (extension_loaded('imagick')) {
 		}
 	}
 
-	\OC\Preview::registerProvider('OC\Preview\SVG');
+	\OC\PreviewManager::registerProvider('OC\Preview\SVG');
 
 }
\ No newline at end of file
diff --git a/lib/preview/txt.php b/lib/preview/txt.php
index c7b8fabc6b046fe36ba68699ef4324f5677a65ba..acbf34c5e424910329f163eea9da8fad96892061 100644
--- a/lib/preview/txt.php
+++ b/lib/preview/txt.php
@@ -46,7 +46,7 @@ class TXT extends Provider {
 	}
 }
 
-\OC\Preview::registerProvider('OC\Preview\TXT');
+\OC\PreviewManager::registerProvider('OC\Preview\TXT');
 
 class PHP extends TXT {
 
@@ -56,7 +56,7 @@ class PHP extends TXT {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\PHP');
+\OC\PreviewManager::registerProvider('OC\Preview\PHP');
 
 class JavaScript extends TXT {
 
@@ -66,4 +66,4 @@ class JavaScript extends TXT {
 
 }
 
-\OC\Preview::registerProvider('OC\Preview\JavaScript');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\JavaScript');
\ No newline at end of file
diff --git a/lib/preview/unknown.php b/lib/preview/unknown.php
index a31b365722e665f4bd0682c1d49c8b6bd0ecbb4a..f9f6fe957b211da741f6774d2e4bd410f90755e7 100644
--- a/lib/preview/unknown.php
+++ b/lib/preview/unknown.php
@@ -40,4 +40,4 @@ class Unknown extends Provider {
 	}
 }
 
-\OC\Preview::registerProvider('OC\Preview\Unknown');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\Unknown');
\ No newline at end of file