diff --git a/includes/menu.inc b/includes/menu.inc
index 2bfa39f..0fd5e27 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -893,7 +893,7 @@ function _menu_link_translate(&$item, $translate = FALSE) {
       // menu_get_item() will have translated the menu router item for the
       // current path, and we can take over the argument map for a link like
       // 'foo/%/bar'. This inheritance is only valid for breadcrumb links.
-      // @see _menu_tree_check_access()
+      // @see menu_tree_check_access()
       // @see menu_get_active_breadcrumb()
       elseif ($translate && ($current_router_item = menu_get_item())) {
         // If $translate is TRUE, then this link is in the active trail.
@@ -917,15 +917,12 @@ function _menu_link_translate(&$item, $translate = FALSE) {
       $item['access'] = FALSE;
       return FALSE;
     }
-    // menu_tree_check_access() may set this ahead of time for links to nodes.
-    if (!isset($item['access'])) {
-      if (!empty($item['load_functions']) && !_menu_load_objects($item, $map)) {
-        // An error occurred loading an object.
-        $item['access'] = FALSE;
-        return FALSE;
-      }
-      _menu_check_access($item, $map);
+    if (!empty($item['load_functions']) && !_menu_load_objects($item, $map)) {
+      // An error occurred loading an object.
+      $item['access'] = FALSE;
+      return FALSE;
     }
+    _menu_check_access($item, $map);
     // For performance, don't localize a link the user can't access.
     if ($item['access']) {
       _menu_item_localize($item, $map, TRUE);
@@ -1352,7 +1349,7 @@ function menu_build_tree($menu_name, array $parameters = array()) {
   // Build the menu tree.
   $data = _menu_build_tree($menu_name, $parameters);
   // Check access for the current user to each item in the tree.
-  menu_tree_check_access($data['tree'], $data['node_links']);
+  menu_tree_check_access($data['tree']);
   return $data['tree'];
 }

@@ -1441,8 +1438,6 @@ function _menu_build_tree($menu_name, array $parameters = array()) {
     }
     $active_trail = (isset($parameters['active_trail']) ? $parameters['active_trail'] : array());
     $data['tree'] = menu_tree_data($links, $active_trail, $min_depth);
-    $data['node_links'] = array();
-    menu_tree_collect_node_links($data['tree'], $data['node_links']);

     // Cache the data, if it is not already in the cache.
     cache_set($tree_cid, $data, 'cache_menu');
@@ -1453,66 +1448,16 @@ function _menu_build_tree($menu_name, array $parameters = array()) {
 }

 /**
- * Collects node links from a given menu tree recursively.
- *
- * @param $tree
- *   The menu tree you wish to collect node links from.
- * @param $node_links
- *   An array in which to store the collected node links.
- */
-function menu_tree_collect_node_links(&$tree, &$node_links) {
-  foreach ($tree as $key => $v) {
-    if ($tree[$key]['link']['router_path'] == 'node/%') {
-      $nid = substr($tree[$key]['link']['link_path'], 5);
-      if (is_numeric($nid)) {
-        $node_links[$nid][$tree[$key]['link']['mlid']] = &$tree[$key]['link'];
-        $tree[$key]['link']['access'] = FALSE;
-      }
-    }
-    if ($tree[$key]['below']) {
-      menu_tree_collect_node_links($tree[$key]['below'], $node_links);
-    }
-  }
-}
-
-/**
- * Checks access and performs dynamic operations for each link in the tree.
- *
- * @param $tree
- *   The menu tree you wish to operate on.
- * @param $node_links
- *   A collection of node link references generated from $tree by
- *   menu_tree_collect_node_links().
- */
-function menu_tree_check_access(&$tree, $node_links = array()) {
-  if ($node_links) {
-    $nids = array_keys($node_links);
-    $select = db_select('node', 'n');
-    $select->addField('n', 'nid');
-    $select->condition('n.status', 1);
-    $select->condition('n.nid', $nids, 'IN');
-    $select->addTag('node_access');
-    $nids = $select->execute()->fetchCol();
-    foreach ($nids as $nid) {
-      foreach ($node_links[$nid] as $mlid => $link) {
-        $node_links[$nid][$mlid]['access'] = TRUE;
-      }
-    }
-  }
-  _menu_tree_check_access($tree);
-}
-
-/**
  * Sorts the menu tree and recursively checks access for each item.
  */
-function _menu_tree_check_access(&$tree) {
+function menu_tree_check_access(&$tree) {
   $new_tree = array();
   foreach ($tree as $key => $v) {
     $item = &$tree[$key]['link'];
     _menu_link_translate($item);
     if ($item['access'] || ($item['in_active_trail'] && strpos($item['href'], '%') !== FALSE)) {
       if ($tree[$key]['below']) {
-        _menu_tree_check_access($tree[$key]['below']);
+        menu_tree_check_access($tree[$key]['below']);
       }
       // The weights are made a uniform 5 digits by adding 50000 as an offset.
       // After _menu_link_translate(), $item['title'] has the localized link title.
@@ -2410,7 +2355,7 @@ function menu_set_active_trail($new_trail = NULL) {
           // menu trees, and have only been loaded for the additional
           // translation that happens here, so as to be able to display them in
           // the breadcumb for the current page.
-          // @see _menu_tree_check_access()
+          // @see menu_tree_check_access()
           // @see _menu_link_translate()
           if (strpos($link['href'], '%') !== FALSE) {
             _menu_link_translate($link, TRUE);
diff --git a/modules/book/book.module b/modules/book/book.module
index 7afed9a..2e3331f 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -1417,7 +1434,6 @@ function book_menu_subtree_data($link) {
       }
       $data['tree'] = menu_tree_data($links, array(), $link['depth']);
       $data['node_links'] = array();
-      menu_tree_collect_node_links($data['tree'], $data['node_links']);
       // Compute the real cid for book subtree data.
       $tree_cid = 'links:' . $item['menu_name'] . ':subtree-data:' . hash('sha256', serialize($data));
       // Cache the data, if it is not already in the cache.
@@ -1429,7 +1445,7 @@ function book_menu_subtree_data($link) {
       cache_set($cid, $tree_cid, 'cache_menu');
     }
     // Check access for the current user to each item in the tree.
-    menu_tree_check_access($data['tree'], $data['node_links']);
+    menu_tree_check_access($data['tree']);
     $tree[$cid] = $data['tree'];
   }

diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc
index 66bd6f3..6f7048d 100644
--- a/modules/menu/menu.admin.inc
+++ b/modules/menu/menu.admin.inc
@@ -61,10 +61,9 @@ function menu_overview_form($form, &$form_state, $menu) {
   }
   $tree = menu_tree_data($links);
   $node_links = array();
-  menu_tree_collect_node_links($tree, $node_links);
   // We indicate that a menu administrator is running the menu access check.
   $menu_admin = TRUE;
-  menu_tree_check_access($tree, $node_links);
+  menu_tree_check_access($tree);
   $menu_admin = FALSE;

   $form = array_merge($form, _menu_overview_tree_form($tree));
