diff --git a/kernel/content/versionviewframe.php b/kernel/content/versionviewframe.php
index <HASH>..<HASH> 100644
--- a/kernel/content/versionviewframe.php
+++ b/kernel/content/versionviewframe.php
@@ -101,6 +101,16 @@ if ( $Module->isCurrentAction( 'Publish' ) and
 
     $operationResult = eZOperationHandler::execute( 'content', 'publish', array( 'object_id' => $ObjectID,
                                                                                  'version' => $EditVersion ) );
+    // redirect if requested by the publishing operation
+    if ( isset( $operationResult['status'] ) && ( $operationResult['status'] == eZModuleOperationInfo::STATUS_HALTED ) )
+    {
+        if (isset( $operationResult['redirect_url'] ))
+        {
+            $Module->redirectTo( $operationResult['redirect_url'] );
+            return;
+        }
+    }
+
     $object = eZContentObject::fetch( $ObjectID );
     $http = eZHTTPTool::instance();
     if ( $object->attribute( 'main_node_id' ) != null )
EZP-<I>: Handled asyncpub redirect from preview

The operation's result wasn't checked, always triggering
the default behaviour.