Index: diff.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/diff/diff.module,v
retrieving revision 1.23.2.3.2.17
diff -u -p -r1.23.2.3.2.17 diff.module
--- diff.module	11 Aug 2010 21:50:00 -0000	1.23.2.3.2.17
+++ diff.module	12 Aug 2010 09:33:59 -0000
@@ -130,10 +130,17 @@ function diff_block($op = 'list', $delta
 }
 
 /**
+ * Implementation of hook_perm().
+ */
+function diff_perm() {
+  return array('view inline diff');
+}
+
+/**
  * Implementation of hook_nodeapi().
  */
 function diff_nodeapi(&$node, $op, $teaser, $page) {
-  if ($page && $op == 'view' && user_access('view revisions') && variable_get('show_diff_inline_'. $node->type, FALSE)) {
+  if ($page && $op == 'view' && (user_access('view revisions') || user_access('view inline diff')) && variable_get('show_diff_inline_'. $node->type, FALSE)) {
     // Set the hilight flag if specified in the URL
     if (isset($_GET['diff'])) {
       $_SESSION['diff_inline_highlight'] = !empty($_GET['diff']);
Index: diff.pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/diff/Attic/diff.pages.inc,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 diff.pages.inc
--- diff.pages.inc	11 Aug 2010 21:50:00 -0000	1.1.2.5
+++ diff.pages.inc	12 Aug 2010 09:33:59 -0000
@@ -53,11 +53,12 @@ function diff_node_revisions($form_state
   }
 
   $revert_permission = FALSE;
-  if ((user_access('revert revisions') || user_access('administer nodes')) && node_access('update', $node)) {
+  $type = $node=>type;
+  if ((user_access('revert ' . $type . ' revisions') || user_access('administer nodes')) && node_access('view inline diff', $node)) {
     $revert_permission = TRUE;
   }
   $delete_permission = FALSE;
-  if (user_access('administer nodes')) {
+  if ((user_access('delete ' . $type . ' revisions') || user_access('administer nodes')) {
     $delete_permission = TRUE;
   }
 
