Index: /FCKeditor/trunk/editor/_source/classes/fckdomrange.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckdomrange.js	(revision 861)
+++ /FCKeditor/trunk/editor/_source/classes/fckdomrange.js	(revision 862)
@@ -253,5 +253,5 @@
 	// handle DOM mutations when moving back to the bookmark.
 	// Attention: the inclusion of nodes in the DOM is a design choice and
-	// should not be changes as there are other points in the code that may be
+	// should not be changed as there are other points in the code that may be
 	// using those nodes to perform operations. See GetBookmarkNode.
 	// For performance, includeNodes=true if intended to SelectBookmark.
@@ -266,5 +266,6 @@
 
 		var oDoc = this.Window.document ;
-		var eSpan ;
+		var eStartSpan ;
+		var eEndSpan ;
 		var oClone ;
 
@@ -272,37 +273,46 @@
 		if ( !this.CheckIsCollapsed() )
 		{
-			eSpan = oDoc.createElement( 'span' ) ;
-			eSpan.id = oBookmark.EndId ;
-			eSpan.setAttribute( '_fck_bookmark', true ) ;
+			eEndSpan = oDoc.createElement( 'span' ) ;
+			eEndSpan.id = oBookmark.EndId ;
+			eEndSpan.setAttribute( '_fck_bookmark', true ) ;
 
 			// For IE, it must have something inside, otherwise it may be
 			// removed during DOM operations.
 //			if ( FCKBrowserInfo.IsIE )
-				eSpan.innerHTML = '&nbsp;' ;
+				eEndSpan.innerHTML = '&nbsp;' ;
 
 			oClone = this.Clone() ;
 			oClone.Collapse( false ) ;
-			oClone.InsertNode( eSpan ) ;
-
-			if ( includeNodes )
-				oBookmark.EndNode = eSpan ;
-		}
-
-		eSpan = oDoc.createElement( 'span' ) ;
-		eSpan.id = oBookmark.StartId ;
-		eSpan.setAttribute( '_fck_bookmark', true ) ;
+			oClone.InsertNode( eEndSpan ) ;
+		}
+
+		eStartSpan = oDoc.createElement( 'span' ) ;
+		eStartSpan.id = oBookmark.StartId ;
+		eStartSpan.setAttribute( '_fck_bookmark', true ) ;
 
 		// For IE, it must have something inside, otherwise it may be removed
 		// during DOM operations.
 //		if ( FCKBrowserInfo.IsIE )
-			eSpan.innerHTML = '&nbsp;' ;
+			eStartSpan.innerHTML = '&nbsp;' ;
 
 		oClone = this.Clone() ;
 		oClone.Collapse( true ) ;
-		oClone.InsertNode( eSpan ) ;
+		oClone.InsertNode( eStartSpan ) ;
 
 		if ( includeNodes )
-			oBookmark.StartNode = eSpan ;
-
+		{
+			oBookmark.StartNode = eStartSpan ;
+			oBookmark.EndNode = eEndSpan ;
+		}
+		
+		// Update the range position.
+		if ( eEndSpan )
+		{
+			this.SetStart( eStartSpan, 4 ) ;
+			this.SetEnd( eEndSpan, 3 ) ;
+		}
+		else
+			this.MoveToPosition( eStartSpan, 4 ) ;
+		
 		return oBookmark ;
 	},
