Index: kernel/classes/ezcontentobjecttreenode.php
===================================================================
--- kernel/classes/ezcontentobjecttreenode.php	(revision 21069)
+++ kernel/classes/ezcontentobjecttreenode.php	(working copy)
@@ -5597,6 +5597,7 @@
         $parentNodeID = -1;
 
         $remoteID = $contentNodeDOMNode->getAttribute( 'remote-id' );
+        $parentNodeRemoteID = $contentNodeDOMNode->getAttribute( 'parent-node-remote-id' );
         $node = eZContentObjectTreeNode::fetchByRemoteID( $remoteID );
         if ( is_object( $node ) )
         {
@@ -5606,9 +5607,9 @@
             $choosenAction = eZPackageHandler::errorChoosenAction( eZContentObject::PACKAGE_ERROR_EXISTS,
                                                                    $options, $description, $handlerType, false );
 
-            // In case user have choosen "Keep existing object and create new"
             switch( $choosenAction )
             {
+                // In case user has chosen "Keep existing object and create new"
                 case eZContentObject::PACKAGE_NEW:
                 {
                     $newRemoteID = md5( (string)mt_rand() . (string)time() );
@@ -5620,30 +5621,38 @@
                     $nodeAssignment = eZPersistentObject::fetchObject( eZNodeAssignment::definition(),
                                                                        null,
                                                                        $nodeInfo );
-                    if( is_object( $nodeAssignment ) )
+                    if ( is_object( $nodeAssignment ) )
                     {
                         $nodeAssignment->setAttribute( 'parent_remote_id', $newRemoteID );
                         $nodeAssignment->store();
                     }
                 } break;
 
+                // When running non-interactively with ezpm.php
                 case eZPackage::NON_INTERACTIVE:
                 {
-                    // Keep existing node settigns.
+                    // Update existing node settigns.
+                    if ( !$parentNodeRemoteID )
+                    {
+                        // when top node of subtree export, only update node sort field and sort order
+                        $node->setAttribute( 'sort_field', eZContentObjectTreeNode::sortFieldID( $contentNodeDOMNode->getAttribute( 'sort-field' ) ) );
+                        $node->setAttribute( 'sort_order', $contentNodeDOMNode->getAttribute( 'sort-order' ) );
+                        $node->store();
+                        return true;
+                    }
                 } break;
 
                 default:
                 {
                     // This error may occur only if data integrity is broken
                     $options['error'] = array( 'error_code' => eZContentObject::PACKAGE_ERROR_NODE_EXISTS,
-                                           'element_id' => $remoteID,
-                                           'description' => $description );
+                                               'element_id' => $remoteID,
+                                               'description' => $description );
                     return false;
                 } break;
             }
         }
 
-        $parentNodeRemoteID = $contentNodeDOMNode->getAttribute( 'parent-node-remote-id' );
         if ( $parentNodeRemoteID )
         {
             $parentNode = eZContentObjectTreeNode::fetchByRemoteID( $parentNodeRemoteID );
