diff --git a/menu_access.module b/menu_access.module
index 9019e77..9172286 100644
--- a/menu_access.module
+++ b/menu_access.module
@@ -1006,10 +1006,13 @@ function _menu_access_menu_tree_check_access(&$tree, $validate_node = TRUE ) {
   foreach ($tree as $key => $v) {
     $item = &$tree[$key]['link'];
     // hack to enforce menu item access.
-        if (module_exists('menu_item_access')) {
-          $item['access'] = menu_access_check_menu_item_access($item['mlid']);
-        } 
+    if (module_exists('menu_item_access')) {
+      $item['access'] = menu_access_check_menu_item_access($item['mlid']);
+    } 
+    // Take sure that _menu_link_translate doesn't change the access, to support external links.
+    $access = $item['access'];
     _menu_link_translate($item);
+    $item['access'] = $access;
     if ($item['access']) {
       if ($tree[$key]['below']) {
         _menu_access_menu_tree_check_access($tree[$key]['below']);
