diff --git includes/view.inc includes/view.inc
index 5884476..27de6c4 100644
--- includes/view.inc
+++ includes/view.inc
@@ -1407,8 +1407,7 @@ class view extends views_db_object {
       $this->_save_rows($key);
     }
 
-    cache_clear_all('views_urls', 'cache_views');
-    cache_clear_all(); // clear the page cache as well.
+    $this->display_handler->save();
   }
 
   /**
@@ -1441,8 +1440,7 @@ class view extends views_db_object {
     cache_clear_all('views_query:' . $this->name, 'cache_views');
 
     if ($clear) {
-      cache_clear_all(); // this clears the block and page caches only.
-      menu_rebuild(); // force a menu rebuild when a view is deleted.
+      $this->display_handler->delete();
     }
   }
 
diff --git plugins/views_plugin_display.inc plugins/views_plugin_display.inc
index db8ccb9..0e601da 100644
--- plugins/views_plugin_display.inc
+++ plugins/views_plugin_display.inc
@@ -2369,6 +2369,20 @@ class views_plugin_display extends views_plugin {
 
     return $output;
   }
+
+  /**
+   * React on storing/updating a view in the database.
+   */
+  function save() {
+    // Clear the views objects out of the cache.
+    // @TODO Find out how to just remove the needed ones.
+    cache_clear_all('cache_views');
+  }
+
+  /**
+   * React on deleting/disabling a view.
+   */
+  function delete() { }
 }
 
 
diff --git plugins/views_plugin_display_block.inc plugins/views_plugin_display_block.inc
index 1c75f8e..76d76d8 100644
--- plugins/views_plugin_display_block.inc
+++ plugins/views_plugin_display_block.inc
@@ -190,4 +190,9 @@ class views_plugin_display_block extends views_plugin_display {
       db_query("UPDATE {blocks} set cache = %d WHERE module = 'views' AND delta = '%s'", $cache_setting, $delta);
     }
   }
+
+  function save() {
+    parent::save();
+    cache_clear_all('cache_block');
+  }
 }
diff --git plugins/views_plugin_display_page.inc plugins/views_plugin_display_page.inc
index 8cda846..7bd7ae6 100644
--- plugins/views_plugin_display_page.inc
+++ plugins/views_plugin_display_page.inc
@@ -503,4 +503,16 @@ class views_plugin_display_page extends views_plugin_display {
 
     return $errors;
   }
+
+  function delete() {
+    parent::save();
+    cache_clear_all(); // this clears the block and page caches only.
+    menu_rebuild(); // force a menu rebuild when a view is deleted.
+  }
+
+  function save() {
+    parent::save();
+    cache_clear_all('views_urls');
+    cache_clear_all(); // clear the page cache as well.
+  }
 }
