diff --git a/content_access.module b/content_access.module
index b194c95..fb6c38c 100644
--- a/content_access.module
+++ b/content_access.module
@@ -103,6 +103,7 @@ function content_access_admin_settings_access() {
  */
 function content_access_node_grants($account, $op) {
   return array(
+    'content_access_author_unpublished' => user_access('view own unpublished content', $account) && $account->uid ? array($account->uid) : array(),
     'content_access_author' => array($account->uid),
     'content_access_rid' => array_keys($account->roles),
   );
@@ -112,9 +113,23 @@ function content_access_node_grants($account, $op) {
  * Implements hook_node_access_records().
  */
 function content_access_node_access_records($node) {
-  if (content_access_disabling() || !$node->status) {
+  if (content_access_disabling()) {
     return;
   }
+  if (!$node->status) {
+    $grants = array();
+    if ($node->uid) {
+      $grants[] = array(
+        'realm' => 'content_access_author_unpublished',
+        'gid' => $node->uid,
+        'grant_view' => 1,
+        'grant_update' => 0,
+        'grant_delete' => 0,
+        'priority' => 0,
+      );
+    }
+    return $grants;
+  }
 
   // Apply per node settings if necessary.
   if (content_access_get_settings('per_node', $node->type)) {
