diff --git a/workbench_moderation.module b/workbench_moderation.module
index ed6e290..9e912af 100644
--- a/workbench_moderation.module
+++ b/workbench_moderation.module
@@ -1479,7 +1479,13 @@ function workbench_moderation_moderate_form_submit($form, $form_state) {
   // publishing, and Drupal's will throw an access denied error before it is
   // able to redirect to the published revision.
   if (!empty($form['#destination'])) {
-    drupal_redirect_form($form);
+    if ($form_state['values']['state'] == workbench_moderation_state_published()) {
+      $form_state['redirect'] = $form['node']['#value']->uri['path'];
+    }
+    else {
+      $form_state['redirect'] = $form['#destination'];
+    }
+    drupal_redirect_form($form_state);
   }
 }
 
