diff --git a/plugins/views_plugin_cache.inc b/plugins/views_plugin_cache.inc
index a8064c1..ee6aeb8 100644
--- a/plugins/views_plugin_cache.inc
+++ b/plugins/views_plugin_cache.inc
@@ -256,18 +256,20 @@ class views_plugin_cache extends views_plugin {
     global $user;
 
     if (!isset($this->_results_key)) {
-
-      $build_info = $this->view->build_info;
-
-      $query_plugin = $this->view->display_handler->get_plugin('query');
-
-      foreach (array('query','count_query') as $index) {
-        // If the default query back-end is used generate SQL query strings from
-        // the query objects.
-        if ($build_info[$index] instanceof SelectQueryInterface) {
-          $query = clone $build_info[$index];
-          $query->preExecute();
-          $build_info[$index] = (string)$query;
+      if (!empty($this->view->query->options['disable_sql_rewrite'])) {
+        $build_info['where'] = $this->view->query->where;
+        $build_info['having'] = $this->view->query->having;
+      }
+      else {
+        $build_info = $this->view->build_info;
+        $query_plugin = $this->view->display_handler->get_plugin('query');
+
+        foreach (array('query','count_query') as $index) {
+          // If the default query back-end is used generate SQL query strings from
+          // the query objects.
+          if ($build_info[$index] instanceof SelectQueryInterface) {
+            $build_info[$index] = (string) $build_info[$index];
+          }
         }
       }
       $key_data = array(
