Index: diff.module
===================================================================
--- diff.module	(revision 5497)
+++ diff.module	(working copy)
@@ -65,8 +65,7 @@
     'page callback' => 'diff_latest',
     'page arguments' => array(1),
     'type' => MENU_LOCAL_TASK,
-    'access callback' => '_node_revision_access',
-    'access arguments' => array(1),
+    'access arguments' => array('access content'),
     'tab_parent' => 'node/%/revisions/view',
   );
   return $items;
@@ -75,9 +74,14 @@
 // Menu callback - show latest diff for a given node.
 function diff_latest($node) {
   $revisions = node_revision_list($node);
-  $new = array_shift($revisions);
-  $old = array_shift($revisions);
-  drupal_goto("node/$node->nid/revisions/view/$old->vid/$new->vid");
+  if (count($revisions) > 1) {
+    $new = array_shift($revisions);
+    $old = array_shift($revisions);
+    drupal_goto("node/$node->nid/revisions/view/$old->vid/$new->vid");
+  }
+  else {
+    drupal_goto("node/$node->nid");
+  }
 }
 
 /**
