Index: /FCKeditor/trunk/editor/_source/classes/fckdomrange.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckdomrange.js	(revision 822)
+++ /FCKeditor/trunk/editor/_source/classes/fckdomrange.js	(revision 823)
@@ -666,13 +666,13 @@
 			if ( eStartBlock && eEndBlock && eStartBlock == eEndBlock )
 			{
-				if ( bIsStartOfBlock )
+				if ( bIsEndOfBlock )
+				{
+					this.MoveToPosition( eEndBlock, 4 ) ;
+					eEndBlock = null ;
+				}
+				else if ( bIsStartOfBlock )
 				{
 					this.MoveToPosition( eStartBlock, 3 ) ;
 					eStartBlock = null ;
-				}
-				else if ( bIsEndOfBlock )
-				{
-					this.MoveToPosition( eEndBlock, 4 ) ;
-					eEndBlock = null ;
 				}
 				else
Index: /FCKeditor/trunk/editor/_source/classes/fckenterkey.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckenterkey.js	(revision 822)
+++ /FCKeditor/trunk/editor/_source/classes/fckenterkey.js	(revision 823)
@@ -380,8 +380,8 @@
 		else
 		{
-			if ( bIsStartOfBlock && bIsEndOfBlock && eNextBlock.tagName.toUpperCase() == 'LI' )
-			{
-				oRange.MoveToElementStart( eNextBlock ) ;
-				this._OutdentWithSelection( eNextBlock, oRange ) ;
+			if ( bIsStartOfBlock && bIsEndOfBlock && ePreviousBlock.tagName.toUpperCase() == 'LI' )
+			{
+				oRange.MoveToElementStart( ePreviousBlock ) ;
+				this._OutdentWithSelection( ePreviousBlock, oRange ) ;
 				oRange.Release() ;
 				return true ;
@@ -430,5 +430,5 @@
 			}
 
-			oRange.MoveToElementEditStart( bIsStartOfBlock ? eNextBlock : eNewBlock ) ;
+			oRange.MoveToElementEditStart( bIsStartOfBlock && !bIsEndOfBlock ? eNextBlock : eNewBlock ) ;
 
 			if ( FCKBrowserInfo.IsGeckoLike )
