Index: kernel/classes/packagehandlers/ezcontentobject/ezcontentobjectpackagehandler.php
===================================================================
--- kernel/classes/packagehandlers/ezcontentobject/ezcontentobjectpackagehandler.php	(revision 22266)
+++ kernel/classes/packagehandlers/ezcontentobject/ezcontentobjectpackagehandler.php	(working copy)
@@ -187,7 +187,7 @@
      \param node id
      \param subtree (optional, default true )
     */
-    function addNode( $nodeID, $isSubtree = true )
+    function addNode( $nodeID, $isSubtree = true, $limit = false, $offset = false )
     {
         include_once( 'kernel/classes/ezcontentobjecttreenode.php' );
         $this->RootNodeIDArray[] = $nodeID;
@@ -195,7 +195,15 @@
 
         if ( $isSubtree )
         {
-            $nodeArray =& eZContentObjectTreeNode::subtree( array( 'AsObject' => false ), $nodeID );
+            if ( is_numeric( $limit ) && is_numeric( $offset ) )
+            {
+                $nodeArray =& eZContentObjectTreeNode::subtree( array( 'AsObject' => false, 'Offset' => $offset, 'Limit' => $limit, 'ClassFilterType' => 'include', 'ClassFilterArray' => array( 'user' ) ), $nodeID );
+            }
+            else
+            {
+                $nodeArray =& eZContentObjectTreeNode::subtree( array( 'AsObject' => false ), $nodeID );
+            }
+
             foreach( $nodeArray as $node )
             {
                 $this->NodeIDArray[] = $node['node_id'];
@@ -1388,7 +1396,7 @@
             $nodeIDList = $nodeItem['node-id-list'];
             foreach ( $nodeIDList as $nodeIDItem )
             {
-                $this->addNode( $nodeIDItem['id'], $nodeIDItem['subtree'] );
+                $this->addNode( $nodeIDItem['id'], $nodeIDItem['subtree'], $parameters['limit'], $parameters['offset'] );
                 unset( $node );
                 $node = false;
                 if ( isset( $nodeIDItem['node'] ) )
@@ -1423,6 +1431,8 @@
     */
     function handleParameters( $packageType, &$package, &$cli, $type, $arguments )
     {
+        $limit = false;
+        $offset = false;
         $nodeList = array();
         $includeClasses = true;
         $includeTemplates = true;
@@ -1434,7 +1444,9 @@
         $languageList = array();
         $minimalTemplateSet = false;
         $nodeItem = array( 'node-id-list' => array() );
-        $longOptions = array( 'include-classes' => 'include-classes',
+        $longOptions = array( 'limit' => 'limit',
+                              'offset' => 'offset',
+                              'include-classes' => 'include-classes',
                               'include-templates' => 'include-templates',
                               'exclude-classes' => 'exclude-classes',
                               'exclude-templates' => 'exclude-templates',
@@ -1521,6 +1533,14 @@
                 {
                     $minimalTemplateSet = true;
                 }
+                else if ( $optionName == 'limit' )
+                {
+                    $limit = $optionValue;
+                }
+                else if ( $optionName == 'offset' )
+                {
+                    $offset = $optionValue;
+                }
             }
             else
             {
@@ -1586,7 +1606,9 @@
             $ini =& eZINI::instance();
             $siteAccessList[] = $ini->variable( 'SiteSettings', 'DefaultAccess' );
         }
-        return array( 'node-list' => $nodeList,
+        return array( 'limit' => $limit,
+                      'offset' => $offset,
+                      'node-list' => $nodeList,
                       'include-classes' => $includeClasses,
                       'include-templates' => $includeTemplates,
                       'siteaccess-list' => $siteAccessList,
