Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.362
diff -u -p -r1.362 menu.inc
--- includes/menu.inc	11 Nov 2009 08:28:50 -0000	1.362
+++ includes/menu.inc	26 Nov 2009 15:04:07 -0000
@@ -403,13 +403,18 @@ function menu_get_item($path = NULL, $ro
     $original_map = arg(NULL, $path);
     $parts = array_slice($original_map, 0, MENU_MAX_PARTS);
     $ancestors = menu_get_ancestors($parts);
-    $router_item = db_select('menu_router')
-      ->fields('menu_router')
-      ->condition('path', $ancestors, 'IN')
-      ->orderBy('fit', 'DESC')
-      ->range(0, 1)
-      ->addTag('menu_get_item')
-      ->execute()->fetchAssoc();
+    $cid = 'menu:item' . implode('/', $ancestors);
+    if ($cached = cache_get($cid, 'cache_menu')) {
+      $router_item = $cached->data;
+    }
+    else {
+      $router_item = db_select('menu_router')
+        ->fields('menu_router')
+        ->condition('path', $ancestors, 'IN')
+        ->orderBy('fit', 'DESC')
+        ->range(0, 1)
+        ->execute()->fetchAssoc();
+    }
     if ($router_item) {
       $map = _menu_translate($router_item, $original_map);
       $router_item['original_map'] = $original_map;
