Index: /CKEditor/branches/features/contenteditable/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/features/contenteditable/_source/plugins/list/plugin.js	(revision 5601)
+++ /CKEditor/branches/features/contenteditable/_source/plugins/list/plugin.js	(revision 5602)
@@ -457,4 +457,10 @@
 				while ( ( block = iterator.getNextParagraph() ) )
 				{
+					// Avoid duplicate blocks get processed across ranges.
+					if( block.getCustomData( 'list_block' ) )
+						continue;
+					else
+						CKEDITOR.dom.element.setMarker( database, block, 'list_block', 1 );
+
 					var path = new CKEDITOR.dom.elementPath( block ),
 						pathElements = path.elements,
@@ -476,5 +482,5 @@
 							// should belong to a different group of paragraphs before
 							// the list. (Bug #1309)
-							blockLimit.removeCustomData( 'list_group_object' + index );
+							blockLimit.removeCustomData( 'list_group_object_' + index );
 
 							var groupObj = element.getCustomData( 'list_group_object' );
@@ -536,5 +542,5 @@
 						'getPrevious' : 'getNext' ]( CKEDITOR.dom.walker.whitespaces( true ) );
 					if ( sibling && sibling.getName &&
-					     sibling.getName() == listCommand.type )
+						 sibling.getName() == listCommand.type )
 					{
 						sibling.remove();
