diff -Naurd drupal-head/modules/node/node.module drupal-head-new/modules/node/node.module
--- drupal-head/modules/node/node.module	2007-04-25 23:28:00.000000000 +0200
+++ drupal-head-new/modules/node/node.module	2007-04-28 11:09:40.000000000 +0200
@@ -842,6 +842,7 @@
       $perms[] = 'create '. $name .' content';
       $perms[] = 'edit own '. $name .' content';
       $perms[] = 'edit '. $name .' content';
+      $perms[] = 'view '. $name .' content';
     }
   }
 
@@ -2712,10 +2713,18 @@
     return TRUE;
   }
 
+  if (user_access('view '. $node->type .' content')) {
+    return TRUE;
+  }
+
   if (!user_access('access content')) {
     return FALSE;
   }
 
+  if (user_access('access content') && !user_access('view '. $node->type .' content')) {
+    return FALSE;
+  }
+
   // Can't use node_invoke(), because the access hook takes the $op parameter
   // before the $node parameter.
   $module = node_get_types('module', $node);
