*** /workbench_moderation/workbench_moderation.module	2011-11-02 23:33:36.000000000 +0400
--- /workbench_moderation/workbench_moderation.module	2012-01-09 09:57:16.508829903 +0400
***************
*** 56,62 ****
    $items["node/%node/current-revision"] = array(
      'page callback' => 'workbench_moderation_node_current_view',
      'page arguments' => array(1),
!     'access arguments' => array('view revisions'),
      'file' => 'workbench_moderation.node.inc',
    );
  
--- 56,63 ----
    $items["node/%node/current-revision"] = array(
      'page callback' => 'workbench_moderation_node_current_view',
      'page arguments' => array(1),
!     'access callback' => '_workbench_moderation_access_current_revision',
!     'access arguments' => array(1),
      'file' => 'workbench_moderation.node.inc',
    );
  
***************
*** 421,426 ****
--- 422,455 ----
  }
  
  /**
+  * Custom access handler for current revision.
+  *
+  * @param $node
+  *   The node being acted upon.
+  *
+  * @return
+  *   Boolean TRUE or FALSE.
+  */
+ function _workbench_moderation_access_current_revision($node) {
+   global $user;
+ 
+   // If we do not control this node type, deny access.
+   if (workbench_moderation_node_type_moderated($node->type) === FALSE) {
+     return FALSE;
+   }
+ 
+   if ($node->uid == $user->uid) {
+     // Show own unpublished content
+     return user_access('view own unpublished content');
+   }
+   else {
+     // Show all unpublished content
+     return user_access('view revisions');
+   }
+ 
+ }
+ 
+ /**
   * Wrapper for the 'revert' and 'delete' operations of _node_revision_access().
   *
   * Drupal core's "current revision" of a node is the version in {node}; for
