Index: modules/node/views_handler_field_node_revision.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/node/Attic/views_handler_field_node_revision.inc,v
retrieving revision 1.1.4.2
diff -u -p -r1.1.4.2 views_handler_field_node_revision.inc
--- modules/node/views_handler_field_node_revision.inc	8 Mar 2010 20:02:42 -0000	1.1.4.2
+++ modules/node/views_handler_field_node_revision.inc	13 Oct 2010 09:50:04 -0000
@@ -44,6 +44,17 @@ class views_handler_field_node_revision 
     if (!empty($this->options['link_to_node_revision']) && $data !== NULL && $data !== '') {
       $this->options['alter']['make_link'] = TRUE;
       $this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']} . '/revisions/' . $values->{$this->aliases['vid']} .'/view';
+      // Check whether user has access to this revision.
+      // For example: if this is only one revision of the
+      // node we fall back to link to the node itself, so user will not have
+      // access denied page but needed revision.
+      $node_access = (object)array(
+        'nid' => $values->{$this->aliases['nid']},
+        'vid' => $values->{$this->aliases['vid']},
+      );
+      if (!_node_revision_access($node_access, 'view')) {
+        $this->options['alter']['path'] = "node/" . $values->{$this->aliases['nid']};
+      }
       if (isset($this->aliases['language'])) {
         $languages = language_list();
         if (isset($languages[$values->{$this->aliases['language']}])) {
