diff --git a/includes/menu.inc b/includes/menu.inc
index 35faf77dd98ef9b8ce351976245e40fea68a42b2..2444d122e5dd368ee9299c3eba90a43017bd0a64 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -622,8 +622,11 @@ function _menu_translate(&$router_item, $map, $to_arg = FALSE) {
   $router_item['href'] = implode('/', $link_map);
   $router_item['options'] = array();
   _menu_check_access($router_item, $map);
-
-  _menu_item_localize($router_item, $map);
+  
+  // For performance, don't localize an item the user can't access.
+  if ($router_item['access']) {
+    _menu_item_localize($router_item, $map);
+  }
 
   return $map;
 }
@@ -701,8 +704,10 @@ function _menu_link_translate(&$item) {
       }
       _menu_check_access($item, $map);
     }
-
-    _menu_item_localize($item, $map, TRUE);
+    // For performance, don't localize a link the user can't access.
+    if ($item['access']) {
+      _menu_item_localize($item, $map, TRUE);
+    }
   }
 
   // Allow other customizations - e.g. adding a page-specific query string to the