diff --git includes/menu.inc includes/menu.inc
index a3121c7..ec9a422 100644
--- includes/menu.inc
+++ includes/menu.inc
@@ -2615,7 +2615,8 @@ function menu_router_build() {
   // a given item came from.
   $callbacks = array();
   foreach (module_implements('menu') as $module) {
-    $router_items = call_user_func($module . '_menu');
+    $function = $module . '_menu';
+    $router_items = $function();
     if (isset($router_items) && is_array($router_items)) {
       foreach (array_keys($router_items) as $path) {
         $router_items[$path]['module'] = $module;
@@ -2625,10 +2626,12 @@ function menu_router_build() {
   }
   // Alter the menu as defined in modules, keys are like user/%user.
   drupal_alter('menu', $callbacks);
-  list($menu, $masks) = _menu_router_build($callbacks);
-  _menu_router_cache($menu);
 
-  return array($menu, $masks);
+  // Build the router and cache the new menu array from it.
+  $router = _menu_router_build($callbacks);
+  _menu_router_cache($router[0]);
+
+  return $router;
 }
 
 /**
