diff --git a/includes/cache.inc b/includes/cache.inc
index aad8784..9ca44eb 100644
--- a/includes/cache.inc
+++ b/includes/cache.inc
@@ -14,7 +14,7 @@
  *   One example is views_get_handler.
  */
 function _views_fetch_data($table = NULL, $move = TRUE, $reset = FALSE) {
-  static $cache = NULL;
+  static $cache = &drupal_static(__FUNCTION__, NULL);
   static $recursion_protection = array();
   if (!isset($cache) || $reset) {
     $start = microtime(TRUE);
@@ -66,7 +66,7 @@ function _views_fetch_data($table = NULL, $move = TRUE, $reset = FALSE) {
  * Fetch the plugin data from cache.
  */
 function _views_fetch_plugin_data($type = NULL, $plugin = NULL, $reset = FALSE) {
-  static $cache = NULL;
+  static $cache = &drupal_static(__FUNCTION__, NULL);
   if (!isset($cache) || $reset) {
     $start = microtime(TRUE);
     views_include('plugins');
diff --git a/includes/view.inc b/includes/view.inc
index 49f3b9a..c6b7385 100644
--- a/includes/view.inc
+++ b/includes/view.inc
@@ -1485,7 +1485,7 @@ class view extends views_db_object {
    *   A view object or NULL if it was not available.
    */
   static function &load($arg, $reset = FALSE) {
-    static $cache = array();
+    static $cache = &drupal_static(__FUNCTION__, NULL);
 
     // We want a NULL value to return TRUE here, so we can't use isset() or empty().
     if (!array_key_exists($arg, $cache) || $reset) {
diff --git a/plugins/views_plugin_display.inc b/plugins/views_plugin_display.inc
index c4a34bc..309214c 100644
--- a/plugins/views_plugin_display.inc
+++ b/plugins/views_plugin_display.inc
@@ -698,7 +698,7 @@ class views_plugin_display extends views_plugin {
    * Get the display or row plugin, if it exists.
    */
   function get_plugin($type = 'style', $name = NULL) {
-    static $cache = array();
+    static $cache = &drupal_static(__FUNCTION__, NULL);
     if (!isset($cache[$type][$name])) {
       switch ($type) {
         case 'style':
diff --git a/plugins/views_plugin_exposed_form_input_required.inc b/plugins/views_plugin_exposed_form_input_required.inc
index 2b564a4..b2a3b57 100644
--- a/plugins/views_plugin_exposed_form_input_required.inc
+++ b/plugins/views_plugin_exposed_form_input_required.inc
@@ -33,7 +33,7 @@ class views_plugin_exposed_form_input_required extends views_plugin_exposed_form
   }
 
   function exposed_filter_applied() {
-    static $cache = NULL;
+    static $cache = &drupal_static(__FUNCTION__, NULL);
     if (!isset($cache)) {
       $view = $this->view;
       if (is_array($view->filter) && count($view->filter)) {
diff --git a/views.module b/views.module
index cd054df..993fd5e 100644
--- a/views.module
+++ b/views.module
@@ -920,7 +920,7 @@ function views_check_roles($rids, $account = NULL) {
  * for other modules or the theme to identify.
  */
 function &views_set_page_view($view = NULL) {
-  static $cache = NULL;
+  static $cache = &drupal_static(__FUNCTION__, NULL);
   if (isset($view)) {
     $cache = $view;
   }
@@ -942,7 +942,7 @@ function &views_get_page_view() {
  * easy for other modules or items in drupal_eval to identify
  */
 function &views_set_current_view($view = NULL) {
-  static $cache = NULL;
+  static $cache = &drupal_static(__FUNCTION__, NULL);
   if (isset($view)) {
     $cache = $view;
   }
