diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 287c5af..5b8146a 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1769,6 +1769,7 @@ function _node_revision_access(Node $node, $op = 'view', $account = NULL) {
   $access = &drupal_static(__FUNCTION__, array());
 
   $map = array(
+    'list' => 'view revisions',
     'view' => 'view revisions',
     'update' => 'revert revisions',
     'delete' => 'delete revisions',
@@ -1796,12 +1797,18 @@ function _node_revision_access(Node $node, $op = 'view', $account = NULL) {
     $node_current_revision = node_load($node->nid);
     $is_current_revision = $node_current_revision->vid == $node->vid;
 
-    // There should be at least two revisions. If the vid of the given node
+    // Some operations require at least two revisions. If the vid of the given node
     // and the vid of the current revision differ, then we already have two
     // different revisions so there is no need for a separate database check.
-    // Also, if you try to revert to or delete the current revision, that's
-    // not good.
-    if ($is_current_revision && (db_query('SELECT COUNT(vid) FROM {node_revision} WHERE nid = :nid', array(':nid' => $node->nid))->fetchField() == 1 || $op == 'update' || $op == 'delete')) {
+    // You cannot revert or delete the current revision.
+    // You cannot get the list of revisions if only 1 revision exists.
+    //   (This includes showing the 'revisions' tab on the node view page.)
+    // You can view the revision itself, even if only 1 revision exists.
+    //   (Creating a consistent UX when contrib creates a list of revisions.)
+    if ($is_current_revision && ($op == 'update' || $op == 'delete')) {
+      $access[$cid] = FALSE;
+    }
+    elseif ($is_current_revision && $op == 'list' && (db_query('SELECT COUNT(vid) FROM {node_revision} WHERE nid = :nid', array(':nid' => $node->nid))->fetchField() == 1)) {
       $access[$cid] = FALSE;
     }
     elseif (user_access('administer nodes', $account)) {
@@ -1984,7 +1991,7 @@ function node_menu() {
     'page callback' => 'node_revision_overview',
     'page arguments' => array(1),
     'access callback' => '_node_revision_access',
-    'access arguments' => array(1),
+    'access arguments' => array(1, 'list'),
     'weight' => 2,
     'type' => MENU_LOCAL_TASK,
     'file' => 'node.pages.inc',
@@ -1995,7 +2002,7 @@ function node_menu() {
     'page callback' => 'node_show',
     'page arguments' => array(1, TRUE),
     'access callback' => '_node_revision_access',
-    'access arguments' => array(1),
+    'access arguments' => array(1, 'view'),
   );
   $items['node/%node/revisions/%/revert'] = array(
     'title' => 'Revert to earlier revision',
