Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6333)
+++ /CKEditor/trunk/CHANGES.html	(revision 6334)
@@ -98,4 +98,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6735">#6735</a> :  Inaccurate read-only selection detection.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6728">#6728</a> :  [BIDI] Change direction doesn't work with list nested inside blockquote.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6432">#6432</a> :  Insert table over fully selected list result in JavaScript error.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/6981">#6981</a> : English (GB);</li>
Index: /CKEditor/trunk/_source/core/dom/range.js
===================================================================
--- /CKEditor/trunk/_source/core/dom/range.js	(revision 6333)
+++ /CKEditor/trunk/_source/core/dom/range.js	(revision 6334)
@@ -374,4 +374,5 @@
 				return;
 
+			this.fixListRange();
 			execContentsAction( this, 0 );
 		},
@@ -1910,5 +1911,31 @@
 
 			return container.getChild( this.endOffset - 1 ) || container ;
-		}
+		},
+
+		// Fix list selection range where entire range is selected from the inner side.
+		// <ul><li>[...]</li></ul> =>	[<ul><li>...</li></ul>]
+		fixListRange : (function()
+		{
+			function moveListBoundary( fixEnd )
+			{
+				var listItem, listRoot;
+				if ( ( listItem = this[ fixEnd ? 'endContainer' : 'startContainer' ].getAscendant( 'li', 1 ) )
+						&& this.checkBoundaryOfElement( listItem, fixEnd ? CKEDITOR.END : CKEDITOR.START )
+						&& ( listRoot = listItem.getParent() )
+						&& ( listItem.equals( listRoot[ fixEnd ? 'getLast' : 'getFirst' ]( CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ) ) ) )
+						// Make the fix only when both sides are in same situation.
+						&& ( fixEnd || moveListBoundary.call( this, 1 ) ) )
+				{
+					this[ fixEnd ? 'setEndAt' : 'setStartAt' ]( listRoot, fixEnd ?
+						CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START );
+					return true;
+				}
+			}
+
+			return function()
+			{
+				moveListBoundary.call( this );
+			};
+		})()
 	};
 })();
Index: /CKEditor/trunk/_source/core/dom/walker.js
===================================================================
--- /CKEditor/trunk/_source/core/dom/walker.js	(revision 6333)
+++ /CKEditor/trunk/_source/core/dom/walker.js	(revision 6334)
@@ -422,4 +422,12 @@
 	};
 
+	CKEDITOR.dom.walker.nodeType = function( type, isReject )
+	{
+		return function( node )
+		{
+			return !! ( isReject ^ ( node.type == type ) );
+		};
+	};
+
 	var tailNbspRegex = /^[\t\r\n ]*(?:&nbsp;|\xa0)$/,
 		isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 ),
