Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.947.2.26
diff -u -p -r1.947.2.26 node.module
--- modules/node/node.module	6 Aug 2010 11:41:13 -0000	1.947.2.26
+++ modules/node/node.module	12 Aug 2010 07:42:46 -0000
@@ -1123,7 +1123,7 @@ function theme_node_log_message($log) {
  * Implementation of hook_perm().
  */
 function node_perm() {
-  $perms = array('administer content types', 'administer nodes', 'access content', 'view revisions', 'revert revisions', 'delete revisions');
+  $perms = array('administer content types', 'administer nodes', 'access content');
 
   foreach (node_get_types() as $type) {
     if ($type->module == 'node') {
@@ -1133,6 +1133,9 @@ function node_perm() {
       $perms[] = 'delete any '. $name .' content';
       $perms[] = 'edit own '. $name .' content';
       $perms[] = 'edit any '. $name .' content';
+      $perms[] = 'view '. $name .' revisions';
+      $perms[] = 'revert '. $name .' revisions';
+      $perms[] = 'delete '. $name .' revisions';
     }
   }
 
@@ -1394,7 +1397,8 @@ function _node_revision_access($node, $o
       $access[$node->vid] = TRUE;
     }
     else {
-      $map = array('view' => 'view revisions', 'update' => 'revert revisions', 'delete' => 'delete revisions');
+      $type = $node->type;
+      $map = array('view' => 'view ' . $type . ' revisions', 'update' => 'revert ' . $type . ' revisions', 'delete' => 'delete ' . $type . ' revisions');
       // First check the user permission, second check the access to the
       // current revision and finally, if the node passed in is not the current
       // revision then access to that, too.
Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.28.2.4
diff -u -p -r1.28.2.4 node.pages.inc
--- modules/node/node.pages.inc	27 Apr 2009 11:35:01 -0000	1.28.2.4
+++ modules/node/node.pages.inc	12 Aug 2010 07:42:46 -0000
@@ -532,12 +532,13 @@ function node_revision_overview($node) {
   $revisions = node_revision_list($node);
 
   $rows = array();
+  $type = $node->type;
   $revert_permission = FALSE;
-  if ((user_access('revert revisions') || user_access('administer nodes')) && node_access('update', $node)) {
+  if ((user_access('revert ' . $type . ' revisions') || user_access('administer nodes')) && node_access('update', $node)) {
     $revert_permission = TRUE;
   }
   $delete_permission = FALSE;
-  if ((user_access('delete revisions') || user_access('administer nodes')) && node_access('delete', $node)) {
+  if ((user_access('delete ' . $type . ' revisions') || user_access('administer nodes')) && node_access('delete', $node)) {
     $delete_permission = TRUE;
   }
   foreach ($revisions as $revision) {
