? cache_modular.diff
Index: includes/cache.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/cache.inc,v
retrieving revision 1.17.2.4
diff -u -p -r1.17.2.4 cache.inc
--- includes/cache.inc	16 Dec 2009 17:30:00 -0000	1.17.2.4
+++ includes/cache.inc	23 Aug 2010 18:46:01 -0000
@@ -112,6 +112,11 @@ function cache_set($cid, $data, $table =
   }
 }
 
+function cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE){
+  cache_clear_all_tables($cid, $table, $wildcard);
+  module_invoke_all('cache_clear_all', $cid, $table, $wildcard);
+}
+
 /**
  *
  * Expire data from the cache. If called without arguments, expirable
@@ -130,7 +135,7 @@ function cache_set($cid, $data, $table =
  *   addition to the exact cache ID specified by $cid.  If $wildcard is
  *   TRUE and $cid is '*' then the entire table $table is emptied.
  */
-function cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE) {
+function cache_clear_all_tables($cid = NULL, $table = NULL, $wildcard = FALSE) {
   global $user;
 
   if (!isset($cid) && !isset($table)) {
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.756.2.96
diff -u -p -r1.756.2.96 common.inc
--- includes/common.inc	11 Aug 2010 20:35:47 -0000	1.756.2.96
+++ includes/common.inc	23 Aug 2010 18:46:03 -0000
@@ -3764,8 +3764,9 @@ function drupal_flush_all_caches() {
   $core = array('cache', 'cache_block', 'cache_filter', 'cache_page');
   $cache_tables = array_merge(module_invoke_all('flush_caches'), $core);
   foreach ($cache_tables as $table) {
-    cache_clear_all('*', $table, TRUE);
+    cache_clear_all_tables('*', $table, TRUE);
   }
+  cache_clear_all();
 }
 
 /**
Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.255.2.34
diff -u -p -r1.255.2.34 menu.inc
--- includes/menu.inc	1 Feb 2010 18:00:49 -0000	1.255.2.34
+++ includes/menu.inc	23 Aug 2010 18:46:03 -0000
@@ -1662,7 +1662,7 @@ function menu_cache_clear($menu_name = '
   static $cache_cleared = array();
 
   if (empty($cache_cleared[$menu_name])) {
-    cache_clear_all('links:'. $menu_name .':', 'cache_menu', TRUE);
+    cache_clear_all_tables('links:'. $menu_name .':', 'cache_menu', TRUE);
     $cache_cleared[$menu_name] = 1;
   }
   elseif ($cache_cleared[$menu_name] == 1) {
@@ -1676,7 +1676,7 @@ function menu_cache_clear($menu_name = '
  * might have been made to the router items or menu links.
  */
 function menu_cache_clear_all() {
-  cache_clear_all('*', 'cache_menu', TRUE);
+  cache_clear_all_tables('*', 'cache_menu', TRUE);
 }
 
 /**
