diff --git cacherouter.inc cacherouter.inc
index 3262d0c..a991ef6 100644
--- cacherouter.inc
+++ cacherouter.inc
@@ -175,33 +175,19 @@ function cache_clear_all($key = NULL, $table = NULL, $wildcard = FALSE) {
  */
 if (!function_exists('page_cache_fastpath')) {
   function page_cache_fastpath() {
-    global $base_root, $cache_router;
+    global $base_root, $cache_router, $conf;
 
     if (empty($_POST) && !isset($_COOKIE['DRUPAL_UID'])) {
       if (!isset($cache_router)) {
         $cache_router = new CacheRouter();
       }
       if ($cache_router->page_fast_cache('cache_page')) {
-        $page = $cache_router->get($base_root . request_uri(), 'cache_page');
+        $page = page_get_cache();
         if (!empty($page)) {
-          drupal_page_header();
-
-           //checking if first chars are compressed (always the same pattern for every header)
-          if (substr($page->data, 0, 3) == "\x1f\x8b\x08") {
-
-            // Determine if the browser accepts gzipped data.
-            if (@strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') === FALSE && function_exists('gzencode')) {
-              // Strip the gzip header and run uncompress.
-              $page->data = gzinflate(substr(substr($page->data, 10), 0, -8));
-            }
-            elseif (function_exists('gzencode')) {
-              //send gzip header to the browser
-              header('Content-Encoding: gzip');
-            }
-          }
-
-          print $page->data;
+          header('X-Drupal-Cache: HIT');
 
+          $conf['page_compression'] = substr($page->data, 0, 3) == "\x1f\x8b\x08";
+          drupal_page_cache_header($page);
           return TRUE;
         }
       }
