Index: /FCKeditor/trunk/editor/_source/classes/fckdomrange_ie.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckdomrange_ie.js	(revision 406)
+++ /FCKeditor/trunk/editor/_source/classes/fckdomrange_ie.js	(revision 407)
@@ -34,13 +34,23 @@
 	if ( oSel.type != 'Control' )
 	{
+		var eMarkerStart = this._GetSelectionMarkerTag( true ) ;
+		var eMarkerEnd = this._GetSelectionMarkerTag( false ) ;
+
+		if ( ! ( eMarkerStart && eMarkerEnd ) )
+		{
+			this._Range.setStart( this.Window.document.body, 0 );
+			this._Range.setEnd( this.Window.document.body, 0 );
+			this._Range.collapse();
+			this._UpdateElementInfo();
+			return;
+		}
+
 		// Set the start boundary.
-		eMarker = this._GetSelectionMarkerTag( true ) ;
-		this._Range.setStart( eMarker.parentNode, FCKDomTools.GetIndexOf( eMarker ) ) ;
-		eMarker.parentNode.removeChild( eMarker ) ;
+		this._Range.setStart( eMarkerStart.parentNode, FCKDomTools.GetIndexOf( eMarkerStart ) ) ;
+		eMarkerStart.parentNode.removeChild( eMarkerStart ) ;
 
 		// Set the end boundary.
-		var eMarker = this._GetSelectionMarkerTag( false ) ;
-		this._Range.setEnd( eMarker.parentNode, FCKDomTools.GetIndexOf( eMarker ) ) ;
-		eMarker.parentNode.removeChild( eMarker ) ;
+		this._Range.setEnd( eMarkerEnd.parentNode, FCKDomTools.GetIndexOf( eMarkerEnd ) ) ;
+		eMarkerEnd.parentNode.removeChild( eMarkerEnd ) ;
 
 		this._UpdateElementInfo() ;
@@ -123,4 +133,10 @@
 	oRange.collapse( toStart === true ) ;
 
+	// IE might take the range object to the main window instead of inside the editor iframe window.
+	// This is known to happen when the editor window has not been selected before (See #933).
+	// We need to avoid that.
+	if (oRange.parentElement().document != this.Window.document)
+		return null;
+
 	// Paste a marker element at the collapsed range and get it from the DOM.
 	var sMarkerId = 'fck_dom_range_temp_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000) ;
