diff --git a/workbench_moderation.module b/workbench_moderation.module
index 840b932..ab6b09c 100644
--- a/workbench_moderation.module
+++ b/workbench_moderation.module
@@ -1191,7 +1193,11 @@ function workbench_moderation_node_current_load($node) {
 function workbench_moderation_node_live_load($node) {
   // Is there a live revision of this node?
   if (isset($node->workbench_moderation['published']->vid)) {
-    return node_load($node->nid, $node->workbench_moderation['published']->vid, TRUE);
+    $live_node = node_load($node->nid, $node->workbench_moderation['published']->vid, TRUE);
+    if (module_exists('pathauto')) {
+      $live_node->path['pathauto'] = pathauto_entity_state_load('node', $node->nid);
+    }
+    return $live_node;
   }
 }
 
@@ -1575,8 +1581,17 @@ function workbench_moderation_store($node) {
   $taxonomy_index_flag = &drupal_static('taxonomy_field_update', array());
   unset($taxonomy_index_flag[$node->nid]);
 
+  // Save current state of pathauto and then prevent it from running on node_save
+  $pathauto_current_state = isset($live_revision->path['pathauto']) ? $live_revision->path['pathauto'] : 0;
+  $live_revision->path['pathauto'] = 0;
+
   // Save the node.
   node_save($live_revision);
+
+  // replace pathauto state if pathauto module is enabled
+  if (module_exists('pathauto')) {
+    pathauto_entity_state_save('node', $live_revision, $pathauto_current_state);
+  }
 }
 
 /**
