Index: /FCKeditor/trunk/editor/_source/internals/fck_gecko.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck_gecko.js	(revision 741)
+++ /FCKeditor/trunk/editor/_source/internals/fck_gecko.js	(revision 742)
@@ -69,10 +69,13 @@
 			return ;
 
-		var keyCode = evt.keyCode ;
-		// ignore if positioning key is not pressed.
-		// left or up arrow keys need to be processed as well, since <a> links can be expanded in Gecko's editor
-		// when the caret moved left or up from another block element below.
-		if ( keyCode < 33 || keyCode > 40 )
-			return ;
+		if ( evt.type == 'keypress' )
+		{
+			var keyCode = evt.keyCode ;
+			// ignore if positioning key is not pressed.
+			// left or up arrow keys need to be processed as well, since <a> links can be expanded in Gecko's editor
+			// when the caret moved left or up from another block element below.
+			if ( keyCode < 33 || keyCode > 40 )
+				return ;
+		}
 		
 		var blockEmptyStop = function( node )
@@ -183,4 +186,5 @@
 			selection.removeAllRanges() ;
 			selection.addRange( range ) ;
+			FCK.Events.FireEvent( "OnSelectionChange" ) ;
 		}
 		
@@ -251,4 +255,5 @@
 	{
 		this.EditorDocument.addEventListener( 'keypress', this._ExecCheckCaret, false ) ;
+		this.EditorDocument.addEventListener( 'click', this._ExecCheckCaret, false ) ;
 		this.AttachToOnSelectionChange( this._ExecCheckEmptyBlock ) ;
 	}
