diff --git a/workflow_access/workflow_access.module b/workflow_access/workflow_access.module
index 08f5bb8..dde921a 100644
--- a/workflow_access/workflow_access.module
+++ b/workflow_access/workflow_access.module
@@ -6,6 +6,16 @@
  */
 
 /**
+ * Implements hook_node_access().
+ * Allow users to always view published content if it is configured like that.
+ */
+function workflow_access_node_access($node, $op, $account) {
+  if ($op == 'view' && $node->status && variable_get('workflow_access_published_always_visible', 0)) {
+    return NODE_ACCESS_ALLOW;
+  }
+}
+
+/**
  * Implements hook_node_grants().
  *
  * Supply the workflow access grants. We are simply using
@@ -65,16 +75,32 @@ function workflow_access_node_access_explain($row) {
  * interface to the workflow edit form.
  */
 function workflow_access_form_workflow_admin_ui_edit_form_alter(&$form, $form_state) {
-  // A list of roles available on the site and our
-  // special -1 role used to represent the node author.
-  $rids = user_roles();
-  $rids['-1'] = t('author');
   $form['workflow_access'] = array(
     '#type' => 'fieldset',
     '#title' => t('Access control'),
     '#collapsible' => TRUE,
     '#tree' => TRUE,
   );
+  
+  // Area for integration options with other modules (like revisioning)
+  $form['workflow_access']['integration'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Integration with other modules'),
+    '#collapsible' => TRUE
+  );
+  $form['workflow_access']['integration']['published_visible'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow users to always view published content (especially useful with the revisioning module).'),
+    '#default_value' => variable_get('workflow_access_published_always_visible', 0),
+    '#description' => t('The workflow access module grants permission based on states. '
+                      . 'In combination with the revisioning module the state of the node might change while '
+                      . 'the published revision remains as is and should be visible.')
+  );
+  
+  // A list of roles available on the site and our
+  // special -1 role used to represent the node author.
+  $rids = user_roles();
+  $rids['-1'] = t('author');
   // Add a table for every workflow state.
   $options = array('status' => 1);
   foreach (workflow_get_workflow_states_by_wid($form['wid']['#value'], $options) as $state) {
@@ -140,6 +166,8 @@ function workflow_access_form_workflow_admin_ui_edit_form_alter(&$form, $form_st
  * Store permission settings for workflow states.
  */
 function workflow_access_form_submit($form, $form_state) {
+  variable_set('workflow_access_published_always_visible',
+               $form_state['values']['workflow_access']['integration']['published_visible']);
   foreach ($form_state['values']['workflow_access'] as $sid => $access) {
     // Ignore irrelevant keys.
     if (!is_numeric($sid)) {
@@ -227,4 +255,4 @@ function workflow_access_insert_workflow_access_by_sid(&$data) {
   $data = (object) $data;
   workflow_access_delete_workflow_access_by_sid_rid($data->sid, $data->rid);
   drupal_write_record('workflow_access', $data);
-}
\ No newline at end of file
+}
