Index: kernel/classes/ezcontentobjectversion.php
===================================================================
--- kernel/classes/ezcontentobjectversion.php	(revision 21958)
+++ kernel/classes/ezcontentobjectversion.php	(working copy)
@@ -917,22 +917,24 @@
             {
                 $contentobject->purge();
             }
-
-            $version = $contentobject->CurrentVersion;
-            if ( $contentobject->CurrentVersion == $versionNum ) //will assign another current_version in contetnObject.
+            else
             {
-               //search for version that will be current after removing of this one.
-               $candidateToBeCurrent = $db->arrayQuery( "SELECT version
-                                                 FROM ezcontentobject_version
-                                                 WHERE contentobject_id={$contentobject->ID} AND
-                                                       version!={$contentobject->CurrentVersion}
-                                                 ORDER BY modified DESC",
-                                             array( 'offset' => 0, 'limit' => 1 ) );
+                $version = $contentobject->CurrentVersion;
+                if ( $contentobject->CurrentVersion == $versionNum ) //will assign another current_version in contentObject.
+                {
+                   //search for version that will be current after removing of this one.
+                   $candidateToBeCurrent = $db->arrayQuery( "SELECT version
+                                                     FROM ezcontentobject_version
+                                                     WHERE contentobject_id={$contentobject->ID} AND
+                                                           version!={$contentobject->CurrentVersion}
+                                                     ORDER BY modified DESC",
+                                                 array( 'offset' => 0, 'limit' => 1 ) );
 
-               if ( isset($candidateToBeCurrent[0]['version']) && is_numeric($candidateToBeCurrent[0]['version']) )
-               {
-                   $contentobject->CurrentVersion = $candidateToBeCurrent[0]['version'];
-                   $contentobject->store();
+                   if ( isset($candidateToBeCurrent[0]['version']) && is_numeric($candidateToBeCurrent[0]['version']) )
+                   {
+                       $contentobject->CurrentVersion = $candidateToBeCurrent[0]['version'];
+                       $contentobject->store();
+                   }
                }
             }
         }
Index: kernel/content/removeeditversion.php
===================================================================
--- kernel/content/removeeditversion.php	(revision 21958)
+++ kernel/content/removeeditversion.php	(working copy)
@@ -75,33 +75,9 @@
                 return $Module->handleError( eZError::KERNEL_ACCESS_DENIED, 'kernel', array( 'AccessList' => $object->accessList( 'edit' ) ) );
         }
 
-        $db = eZDB::instance();
-        $db->begin();
-
-        $contentObjectAttributes = $versionObject->contentObjectAttributes( $editLanguage );
-        foreach ( $contentObjectAttributes as $contentObjectAttribute )
-        {
-            $objectAttributeID = $contentObjectAttribute->attribute( 'id' );
-            $contentObjectAttribute->removeThis( $objectAttributeID, $version );
-        }
         $versionCount= $object->getVersionCount();
-        if ( $versionCount == 1 )
-        {
-            $nodeID = $versionObject->attribute( 'main_parent_node_id' );
-            $object->purge();
-        }
-        else
-        {
-            $nodeID = $object->attribute( 'main_node_id' );
-            $versionObject->remove();
-        }
-
-        $db->query( "DELETE FROM ezcontentobject_link
-                     WHERE from_contentobject_id=$objectID AND from_contentobject_version=$version" );
-        $db->query( "DELETE FROM eznode_assignment
-                     WHERE contentobject_id=$objectID AND contentobject_version=$version" );
-
-        $db->commit();
+        $nodeID = $versionCount == 1 ? $versionObject->attribute( 'main_parent_node_id' ) : $object->attribute( 'main_node_id' );
+        $versionObject->removeThis();
     }
     $hasRedirected = false;
     if ( $http->hasSessionVariable( 'RedirectIfDiscarded' ) )
Index: kernel/user/register.php
===================================================================
--- kernel/user/register.php	(revision 21958)
+++ kernel/user/register.php	(working copy)
@@ -120,30 +120,8 @@
             //include_once( 'kernel/classes/ezredirectmanager.php' );
             eZRedirectManager::redirectTo( $module, '/' );
 
-            $EditVersion = (int)$EditVersion;
-            $objectID = $object->attribute( 'id' );
-            $versionCount= $object->getVersionCount();
-            $db = eZDB::instance();
-            $db->begin();
-            $db->query( "DELETE FROM ezcontentobject_link
-                         WHERE from_contentobject_id=$objectID AND from_contentobject_version=$EditVersion" );
-            $db->query( "DELETE FROM eznode_assignment
-                         WHERE contentobject_id=$objectID AND contentobject_version=$EditVersion" );
             $version->removeThis();
-            foreach ( $contentObjectAttributes as $contentObjectAttribute )
-            {
-                $objectAttributeID = $contentObjectAttribute->attribute( 'id' );
-                $version = $contentObjectAttribute->attribute( 'version' );
-                if ( $version == $EditVersion )
-                {
-                    $contentObjectAttribute->removeThis( $objectAttributeID, $version );
-                }
-            }
-            if ( $versionCount == 1 )
-            {
-                $object->purge();
-            }
-            $db->commit();
+
             $http = eZHTTPTool::instance();
             $http->removeSessionVariable( "RegisterUserID" );
             return eZModule::HOOK_STATUS_CANCEL_RUN;
