diff --git a/nodequeue.module b/nodequeue.module
index 312e02d..f44441e 100644
--- a/nodequeue.module
+++ b/nodequeue.module
@@ -866,8 +866,8 @@ function nodequeue_save(&$queue) {
       ->fields($nodequeue_queue_fields)
       ->execute();
 
-    if (function_exists('views_invalidate_cache')) {
-      views_invalidate_cache();
+    if (module_exists('views')) {
+      _nodequeue_invalidate_views_cache();
     }
   }
   else {
@@ -1927,6 +1927,20 @@ function nodequeue_check_token($seed) {
 /* --- UTILITY -------------------------------------------------------------- */
 
 /**
+ * Helper function to invalidate the views cache. It should replace the views_invalidate_cache
+ * function that is shipped with the views module because it became too heavy.
+ *
+ * @see views_invalidate_cache
+ */
+function _nodequeue_invalidate_views_cache() {
+  // Clear the views cache.
+  cache_clear_all('*', 'cache_views', TRUE);
+
+  // Allow modules to respond to the Views cache being cleared.
+  module_invoke_all('views_invalidate_cache');
+}
+
+/**
  * Helper function - since hook_menu now takes a function instead of a boolean,
  * this function is used to compute the user's access.
  *
