Index: kernel/user/register.php
===================================================================
--- kernel/user/register.php	(revision 25164)
+++ kernel/user/register.php	(working copy)
@@ -52,6 +52,19 @@
 
 // $http->removeSessionVariable( "RegisterUserID" );
 
+if ( $redirectNumber == '3' )
+{
+    $tpl->setVariable( 'content_attributes', false );
+
+    $Result = array();
+    $Result['content'] = $tpl->fetch( 'design:user/register.tpl' );
+    $Result['path'] = array( array( 'url' => false,
+                            'text' => ezpI18n::tr( 'kernel/user', 'User' ) ),
+                        array( 'url' => false,
+                            'text' => ezpI18n::tr( 'kernel/user', 'Register' ) ) );
+    return $Result;
+}
+
 $db = eZDB::instance();
 $db->begin();
 
@@ -198,6 +211,14 @@
             $operationResult = eZOperationHandler::execute( 'content', 'publish', array( 'object_id' => $object->attribute( 'id' ),
                                                                                          'version' => $version->attribute( 'version') ) );
 
+            // Break here if the publishing failed
+            if ( $operationResult['status'] !== eZModuleOperationInfo::STATUS_CONTINUE )
+            {
+                eZDebug::writeError( 'User object(' . $object->attribute( 'id' ) . ') could not be published.', 'user/register' );
+                $module->redirectTo( '/user/register/3' );
+                return;
+            }
+
             $object = eZContentObject::fetch( $object->attribute( 'id' ) );
 
             // Check if user should be enabled and logged in
