diff --git a/includes/menu.inc b/includes/menu.inc
index 0e9c977..df1e258 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -1490,14 +1490,16 @@ function menu_tree_check_access(&$tree, $node_links = array()) {
   if ($node_links && (user_access('access content') || user_access('bypass node access'))) {
     $nids = array_keys($node_links);
     $select = db_select('node', 'n');
-    $select->addField('n', 'nid');
-    $select->condition('n.status', 1);
+    $select->fields('n', array('nid', 'status'));
     $select->condition('n.nid', $nids, 'IN');
     $select->addTag('node_access');
-    $nids = $select->execute()->fetchCol();
-    foreach ($nids as $nid) {
+    $nids = $select->execute()->fetchAllKeyed();
+    foreach ($nids as $nid => $status) {
       foreach ($node_links[$nid] as $mlid => $link) {
         $node_links[$nid][$mlid]['access'] = TRUE;
+        if ($status == 0) {
+          $node_links[$nid][$mlid]['hidden'] = 1;
+        }
       }
     }
   }
