Index: /FCKeditor/branches/features/anchors/PackageDefinition.xml
===================================================================
--- /FCKeditor/branches/features/anchors/PackageDefinition.xml	(revision 31)
+++ /FCKeditor/branches/features/anchors/PackageDefinition.xml	(revision 32)
@@ -3,11 +3,11 @@
 	
 	<OriginalFile sourcePath="editor/fckeditor.html" targetPath="editor/fckeditor.original.html" />
-	
-	<IgnoreDir path="_dir" />
+
+	<IgnoreDir path="_dev" />
 	<IgnoreDir path="_test" />
 	<IgnoreDir path="editor/js" />
 
 	<!--
-	<IgnoreFile path="FCKeditor.V2.csproj" />
+	<IgnoreFile path="any.file" />
 	-->
 </Package>
Index: /FCKeditor/branches/features/anchors/_test/manual/fckenterkey/test1_inner.html
===================================================================
--- /FCKeditor/branches/features/anchors/_test/manual/fckenterkey/test1_inner.html	(revision 31)
+++ /FCKeditor/branches/features/anchors/_test/manual/fckenterkey/test1_inner.html	(revision 32)
@@ -19,5 +19,6 @@
 <body>
 	<h1>
-		Sample document for editor area test<img src="http://www.fckeditor.net/images/logotop.gif" alt="" />
+		Sample document for editor area test<img src="../../../editor/dialog/fck_about/logo_fckeditor.gif"
+			alt="" />
 	</h1>
 	<p>
@@ -68,10 +69,7 @@
 		Test procedure
 	</h2>
-	
-		This text has no block tag. It goes directly in the body. 
-		In the test we will try to recreate this document using the editor tools. To make
-		sure tables can be inserted <em>properly</em> we re-visit banana import statistics
-		from 1998.
-	
+	This text has no block tag. It goes directly in the body. In the test we will try
+	to recreate this document using the editor tools. To make sure tables can be inserted
+	<em>properly</em> we re-visit banana import statistics from 1998.
 	<p>
 		In the test we will try to recreate this document using the editor tools. To make
@@ -79,8 +77,7 @@
 		from 1998.
 	</p>
-		Another piece of text without block tag. It goes directly in the body. 
-		In the test we will try to recreate this document using the editor tools. To make
-		sure tables can be inserted <em>properly</em> we re-visit banana import statistics
-		from 1998.
+	Another piece of text without block tag. It goes directly in the body. In the test
+	we will try to recreate this document using the editor tools. To make sure tables
+	can be inserted <em>properly</em> we re-visit banana import statistics from 1998.
 	<p>
 		In the test we will try to recreate this document using the editor tools. To make
Index: /FCKeditor/branches/features/anchors/editor/_source/classes/fckdomrange_ie.js
===================================================================
--- /FCKeditor/branches/features/anchors/editor/_source/classes/fckdomrange_ie.js	(revision 31)
+++ /FCKeditor/branches/features/anchors/editor/_source/classes/fckdomrange_ie.js	(revision 32)
@@ -178,4 +178,5 @@
 	var eTmpSpan = this.Window.document.createElement( 'span' ) ;
 	eTmpSpan.id = 'fck_dom_range_temp_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000) ; 
+	eTmpSpan.innerHTML = '&nbsp;' ;
 
 	switch( position )
@@ -187,4 +188,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
+			oTargetRange.collapse( false ) ;
 			
 			if ( oRange.compareEndPoints( 'EndToStart', oTargetRange ) == -1 )
@@ -200,4 +202,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
+			oTargetRange.collapse( true ) ;
 			
 			if ( oRange.compareEndPoints( 'EndToEnd', oTargetRange ) == -1 )
@@ -213,4 +216,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
+			oTargetRange.collapse( true ) ;
 			
 			if ( oRange.compareEndPoints( 'EndToStart', oTargetRange ) == -1 )
@@ -226,4 +230,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( targetElement ) ;
+			oTargetRange.collapse( false ) ;
 			
 			if ( oRange.compareEndPoints( 'EndToEnd', oTargetRange ) == -1 )
@@ -259,4 +264,5 @@
 	var eTmpSpan = this.Window.document.createElement( 'span' ) ;
 	eTmpSpan.id = 'fck_dom_range_temp_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000) ; 
+	eTmpSpan.innerHTML = '&nbsp;' ;
 
 	switch( position )
@@ -268,4 +274,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
+			oTargetRange.collapse( true ) ;
 			
 			if ( oRange.compareEndPoints( 'StartToEnd', oTargetRange ) == 1 )
@@ -281,5 +288,6 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
-			
+			oTargetRange.collapse( false ) ;
+
 			if ( oRange.compareEndPoints( 'StartToEnd', oTargetRange ) == 1 )
 				oRange.setEndPoint( 'StartToEnd', oTargetRange ) ;
@@ -294,4 +302,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( eTmpSpan ) ;
+			oTargetRange.collapse( false ) ;
 			
 			if ( oRange.compareEndPoints( 'StartToEnd', oTargetRange ) == 1 )
@@ -307,4 +316,5 @@
 			var oTargetRange = this.Window.document.body.createTextRange() ;
 			oTargetRange.moveToElementText( targetElement ) ;
+			oTargetRange.collapse( true ) ;
 			
 			if ( oRange.compareEndPoints( 'StartToEnd', oTargetRange ) == 1 )
Index: /FCKeditor/branches/features/anchors/editor/_source/classes/fckenterkey.js
===================================================================
--- /FCKeditor/branches/features/anchors/editor/_source/classes/fckenterkey.js	(revision 31)
+++ /FCKeditor/branches/features/anchors/editor/_source/classes/fckenterkey.js	(revision 32)
@@ -21,5 +21,5 @@
 
 	// Setup the Keystroke Handler.
-	var oKeystrokeHandler = new FCKKeystrokeHandler() ;
+	var oKeystrokeHandler = new FCKKeystrokeHandler( false ) ;
 	oKeystrokeHandler._EnterKey = this ;
 	oKeystrokeHandler.OnKeystroke = FCKEnterKey_OnKeystroke ;
@@ -359,11 +359,11 @@
 					eNewBlock = eStartBlock.cloneNode(false) ;
 
-					// It could be that we are in a LI with a child UL. Insert a bogus to give us space to type.
+					// It could be that we are in a LI with a child UL/OL. Insert a bogus to give us space to type.
 					FCKDomTools.TrimNode( eDocFrag.RootNode ) ;
-					if ( eDocFrag.RootNode.firstChild.nodeType == 1 && eDocFrag.RootNode.firstChild.tagName.toUpperCase() == 'UL' )
+					if ( eDocFrag.RootNode.firstChild.nodeType == 1 && eDocFrag.RootNode.firstChild.tagName.toUpperCase().Equals( 'UL', 'OL' ) )
 						eNewBlock.innerHTML = GECKO_BOGUS ;
 					
-					// Set the duplicated block contents to the extracted one.
-					eDocFrag.AppendTo( eNewBlock ) ;
+					// Place the extracted contents in the duplicated block.
+					eDocFrag.AppendTo( eNewBlock ) ;					
 				}
 
@@ -371,5 +371,13 @@
 				{
 					// Place the new block after the current block element.
-					FCKDomTools.InsertAfterNode( eStartBlock, eNewBlock ) ;
+					if ( FCKBrowserInfo.IsIE )
+					{
+						// You gona think I'm crazy, but in IE we have to do
+						// this way to make it work properly with LI in some cases.
+						eStartBlock.parentNode.insertBefore( eNewBlock, eStartBlock ) ;		
+						eNewBlock.swapNode( eStartBlock	) ;	
+					}
+					else
+						FCKDomTools.InsertAfterNode( eStartBlock, eNewBlock ) ;
 
 					// Move the selection to the new block.
Index: /FCKeditor/branches/features/anchors/editor/_source/classes/fckkeystrokehandler.js
===================================================================
--- /FCKeditor/branches/features/anchors/editor/_source/classes/fckkeystrokehandler.js	(revision 31)
+++ /FCKeditor/branches/features/anchors/editor/_source/classes/fckkeystrokehandler.js	(revision 32)
@@ -6,7 +6,8 @@
 */
 
-var FCKKeystrokeHandler = function()
+var FCKKeystrokeHandler = function( cancelCtrlDefaults )
 {
 	this.Keystrokes = new Object() ;
+	this.CancelCtrlDefaults = ( cancelCtrlDefaults !== false ) ;
 }
 
@@ -89,5 +90,5 @@
 
 	// By default, it will cancel all combinations with the CTRL key only (except positioning keys).
-	if ( cancelIt || ( keyModifiers == CTRL && ( keystroke < 33 || keystroke > 40 ) ) )
+	if ( cancelIt || ( keystrokeHandler.CancelCtrlDefaults && keyModifiers == CTRL && ( keystroke < 33 || keystroke > 40 ) ) )
 	{
 		keystrokeHandler._CancelIt = true ;
