Index: kernel/classes/ezcontentobject.php
===================================================================
--- kernel/classes/ezcontentobject.php	(revision 22290)
+++ kernel/classes/ezcontentobject.php	(working copy)
@@ -5047,6 +5047,8 @@
             // Make sure always available bit is set.
             $contentObject->setAttribute( 'language_mask', (int)$contentObject->attribute( 'language_mask' ) | 1 );
         }
+
+        $contentObject->setAttribute( 'section_id', $sectionID );
         $contentObject->store();
         $activeVersion = false;
         $lastVersion = false;
@@ -5111,10 +5113,12 @@
                 $existingMainNode = eZContentObjectTreeNode::fetchByRemoteID( $mainNodeInfo['parent_remote_id'], false );
                 if ( $existingMainNode )
                 {
+                    $updateSection = false;
                     eZContentObjectTreeNode::updateMainNodeID( $existingMainNode['node_id'],
                                                                $mainNodeInfo['contentobject_id'],
                                                                $mainNodeInfo['contentobject_version'],
-                                                               $mainNodeInfo['parent_node'] );
+                                                               $mainNodeInfo['parent_node'],
+                                                               $updateSection );
                 }
             }
             unset( $mainNodeInfo );
Index: kernel/classes/ezcontentobjecttreenode.php
===================================================================
--- kernel/classes/ezcontentobjecttreenode.php	(revision 22290)
+++ kernel/classes/ezcontentobjecttreenode.php	(working copy)
@@ -2738,7 +2738,7 @@
      \note Transaction unsafe. If you call several transaction unsafe methods you must enclose
      the calls within a db transaction; thus within db->begin and db->commit.
     */
-    static function updateMainNodeID( $mainNodeID, $objectID, $version = false, $parentMainNodeID )
+    static function updateMainNodeID( $mainNodeID, $objectID, $version = false, $parentMainNodeID, $updateSection = true )
     {
         $mainNodeID = (int)$mainNodeID;
         $parentMainNodeID = (int)$parentMainNodeID;
@@ -2758,7 +2758,7 @@
 
         $contentObject = eZContentObject::fetch( $objectID );
         $parentContentObject = eZContentObject::fetchByNodeID( $parentMainNodeID );
-        if ( $contentObject->attribute( 'section_id' ) != $parentContentObject->attribute( 'section_id' ) )
+        if ( $updateSection && $contentObject->attribute( 'section_id' ) != $parentContentObject->attribute( 'section_id' ) )
         {
             $newSectionID = $parentContentObject->attribute( 'section_id' );
             eZContentObjectTreeNode::assignSectionToSubTree( $mainNodeID, $newSectionID );
