diff --git a/lib/cache.php b/lib/cache.php
index 55d5b064c41efe893b8511a47ba18a27949c0264..66d1049fb52c3ffbd909ccc5c8746ea3b2fd2b8f 100644
--- a/lib/cache.php
+++ b/lib/cache.php
@@ -8,7 +8,21 @@
 
 class OC_Cache {
 	static protected $cache;
+	static protected $global_cache;
 
+	static public function getGlobalCache() {
+		if (!self::$global_cache) {
+			self::$global_cache = new OC_Cache_FileGlobal();
+		}
+		return self::$global_cache;
+	}
+
+	static public function getUserCache() {
+		if (!self::$cache) {
+			self::init();
+		}
+		return self::$cache;
+	}
 	static protected function init() {
 		$fast_cache = null;
 		if (!$fast_cache && function_exists('xcache_set')) {
diff --git a/lib/minimizer.php b/lib/minimizer.php
index e17c114f0650fa69d257cf425216176c2a9b7887..2650c579c1ddbaa56660aaa6664475f50e4d7e0b 100644
--- a/lib/minimizer.php
+++ b/lib/minimizer.php
@@ -22,7 +22,7 @@ abstract class OC_Minimizer {
 		OC_Response::setLastModifiedHeader($last_modified);
 
 		$gzout = false;
-		$cache = new OC_Cache_FileGlobal();
+		$cache = OC_Cache::getGlobalCache();
 		if (!OC_Request::isNoCache() && (!defined('DEBUG') || !DEBUG)){
 			$gzout = $cache->get($cache_key.'.gz');
 			OC_Response::setETagHeader(md5($gzout));