Index: menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.268
diff -u -r1.268 menu.inc
--- menu.inc	14 Apr 2008 17:48:33 -0000	1.268
+++ menu.inc	18 Apr 2008 17:29:27 -0000
@@ -1648,8 +1648,8 @@
 }
 
 /**
- * Collect, alter and store the menu definitions.
- */
+* Collect, alter and store the menu definitions.
+*/
 function menu_router_build($reset = FALSE) {
   static $menu;
 
@@ -1658,12 +1658,11 @@
       $menu = $cache->data;
     }
     else {
-      db_query('DELETE FROM {menu_router}');
       // We need to manually call each module so that we can know which module
       // a given item came from.
       $callbacks = array();
       foreach (module_implements('menu') as $module) {
-        $router_items = call_user_func($module . '_menu');
+        $router_items = call_user_func($module .'_menu');
         if (isset($router_items) && is_array($router_items)) {
           foreach (array_keys($router_items) as $path) {
             $router_items[$path]['module'] = $module;
@@ -1673,6 +1672,8 @@
       }
       // Alter the menu as defined in modules, keys are like user/%user.
       drupal_alter('menu', $callbacks);
+      // New data available: delete old routing information now.
+      db_query('DELETE FROM {menu_router}');
       $menu = _menu_router_build($callbacks);
       cache_set('router:', $menu, 'cache_menu');
     }
