Index: /FCKeditor/trunk/editor/_source/internals/fckdomtools.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 855)
+++ /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 856)
@@ -652,9 +652,9 @@
 		if ( ! listArray || listArray.length < baseIndex + 1 )
 			return null ;
-		var retval = listArray[baseIndex].parent.ownerDocument.createDocumentFragment() ;
-		var rootNode = listArray[baseIndex].parent.cloneNode( false ) ;
-		retval.appendChild( rootNode ) ;
+		var doc = listArray[baseIndex].parent.ownerDocument ;
+		var retval = doc.createDocumentFragment() ;
+		var rootNode = null ;
 		var currentIndex = baseIndex ;
-		var indentLevel = listArray[baseIndex].indent ;
+		var indentLevel = Math.max( listArray[baseIndex].indent, 0 ) ;
 		var currentListItem = null ;
 		while ( true )
@@ -668,5 +668,5 @@
 					retval.appendChild( rootNode ) ;
 				}
-				currentListItem = rootNode.ownerDocument.createElement( 'li' ) ;
+				currentListItem = doc.createElement( 'li' ) ;
 				rootNode.appendChild( currentListItem ) ;
 				for ( var i = 0 ; i < item.contents.length ; i++ )
@@ -684,11 +684,11 @@
 				var currentListItem ;
 				if ( item.grandparent.nodeName.IEquals( ['ul', 'ol'] ) )
-					currentListItem = rootNode.ownerDocument.createElement( 'li' ) ;
+					currentListItem = doc.createElement( 'li' ) ;
 				else
 				{
 					if ( FCKConfig.EnterMode.IEquals( ['div', 'p'] ) )
-						currentListItem = rootNode.ownerDocument.createElement( FCKConfig.EnterMode ) ;
+						currentListItem = doc.createElement( FCKConfig.EnterMode ) ;
 					else
-						currentListItem = rootNode.ownerDocument.createDocumentFragment() ;
+						currentListItem = doc.createDocumentFragment() ;
 				}
 				item.grandparent.appendChild( currentListItem )  ;
@@ -696,5 +696,5 @@
 					currentListItem.appendChild( item.contents[i].cloneNode( true ) ) ;
 				if ( currentListItem.nodeType == 11 )
-					currentListItem.appendChild( currentListItem.ownerDocument.createElement( 'br' ) ) ;
+					currentListItem.appendChild( doc.createElement( 'br' ) ) ;
 				retval.appendChild( currentListItem ) ;
 				rootNode = null ;
