--- modules/node/node.module	2010-12-15 12:53:33.000000000 +0000
+++ modules/node/node.module	2011-04-09 17:24:39.000000000 +0100
@@ -1135,6 +1135,7 @@ function node_perm() {
     if ($type->module == 'node') {
       $name = check_plain($type->type);
       $perms[] = 'create '. $name .' content';
+      $perms[] = 'view unpublished '. $name .' content';
       $perms[] = 'delete own '. $name .' content';
       $perms[] = 'delete any '. $name .' content';
       $perms[] = 'edit own '. $name .' content';
@@ -2440,6 +2441,12 @@ function node_content_access($op, $node,
     }
   }
 
+  if ($op == 'view') {
+    if (user_access('view unpublished '. $type .' content', $account) && !$node->status) {
+      return TRUE;
+    }
+  }
+
   if ($op == 'delete') {
     if (user_access('delete any '. $type .' content', $account) || (user_access('delete own '. $type .' content', $account) && ($account->uid == $node->uid))) {
       return TRUE;
