Index: _source/plugins/wysiwygarea/plugin.js
===================================================================
--- _source/plugins/wysiwygarea/plugin.js	(revision 6181)
+++ _source/plugins/wysiwygarea/plugin.js	(revision )
@@ -144,13 +144,15 @@
 
 				// If we're inserting a block at dtd-violated position, split
 				// the parent blocks until we reach blockLimit.
-				var current, dtd;
+				var current, dtd, lists = { ol:1, ul:1 };
 				if ( isBlock )
 				{
 					while ( ( current = range.getCommonAncestor( 0, 1 ) )
 							&& ( dtd = CKEDITOR.dtd[ current.getName() ] )
 							&& !( dtd && dtd [ elementName ] ) )
 					{
+						var boundary = range.getBoundaryNodes();
+
 						// Split up inline elements.
 						if ( current.getName() in CKEDITOR.dtd.span )
 							range.splitElement( current );
@@ -163,6 +165,19 @@
 							range.collapse( true );
 							current.remove();
 						}
+						else if ( current.getName() in lists && boundary.startNode.is( 'li' ) && boundary.endNode.is( 'li' ) )
+						{
+							var sibling = boundary.startNode;
+							while ( sibling = sibling.getNext() )
+							{
+								sibling.remove();
+								if ( sibling.equals( boundary.endNode ) )
+									break;
+							}
+
+							range.setStartAt( boundary.startNode, CKEDITOR.POSITION_AFTER_START );
+							range.setEndAt( boundary.startNode, CKEDITOR.POSITION_BEFORE_END );
+						}
 						else
 							range.splitBlock();
 					}
