diff --git a/plugins/QuickViewContent.inc b/plugins/QuickViewContent.inc
index 2a01c05..0ee35de 100644
--- a/plugins/QuickViewContent.inc
+++ b/plugins/QuickViewContent.inc
@@ -114,9 +114,16 @@ class QuickViewContent extends QuickContent {
       if (module_exists('views')) {
         if ($view = views_get_view($item['vid'])) {
           if ($view->access($item['display'])) {
-            $view->set_display($item['display']);
-            $view->set_arguments($item['actual_args']);
-            $view_output = $view->preview();
+            $cid = $item['vid'] . ':' . $item['display'] . ':' . implode(',', $item['actual_args']);
+            if ($cache = cache_get($cid, 'cache')) {
+              $view_output = $cache->data;
+	    }
+            else {
+              $view->set_display($item['display']);
+              $view->set_arguments($item['actual_args']);
+              $view_output = $view->preview();
+              cache_set($cid, $view_output, 'cache', time() + 5*60);
+            }
             if (!empty($view->result) || $view->display_handler->get_option('empty') || !empty($view->style_plugin->definition['even empty'])) {
               $output['#markup'] = $view_output;
             }
@@ -138,4 +145,5 @@ class QuickViewContent extends QuickContent {
   public function getAjaxKeys() {
     return array('vid', 'display', 'view_dom_id', 'view_path', 'ajax_args');
   }
-}
\ No newline at end of file
+}
+
