Index: /CKEditor/trunk/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 5341)
+++ /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 5342)
@@ -39,5 +39,5 @@
 					continue;
 
-				var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem };
+				var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem, contents : [] };
 				if ( !grandparentNode )
 				{
@@ -55,8 +55,11 @@
 				for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount ; j++ )
 				{
-					child = listItem.getChild( j );
-					// Push inner list items with +1 indentation in the correct order.
+					var child = listItem.getChild( j );
 					if ( child.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ child.getName() ] )
+						// Note the recursion here, it pushes inner list items with
+						// +1 indentation in the correct order.
 						CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent );
+					else
+						itemObj.contents.push( child );
 				}
 			}
@@ -88,5 +91,7 @@
 						retval.append( rootNode );
 					}
-					currentListItem = rootNode.append( item.element );
+					currentListItem = rootNode.append( item.element.clone( false, true ) );
+					for ( var i = 0 ; i < item.contents.length ; i++ )
+						currentListItem.append( item.contents[i].clone( true, true ) );
 					currentIndex++;
 				}
@@ -101,5 +106,5 @@
 					currentListItem;
 					if ( listNodeNames[ item.grandparent.getName() ] )
-						currentListItem = item.element;
+						currentListItem = item.element.clone( false, true );
 					else
 					{
@@ -111,5 +116,6 @@
 					}
 
-					item.element.moveChildren( currentListItem );
+					for ( i = 0 ; i < item.contents.length ; i++ )
+						currentListItem.append( item.contents[i].clone( true, true ) );
 
 					if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT
