Index: /CKEditor/trunk/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/button/plugin.js	(revision 3445)
+++ /CKEditor/trunk/_source/plugins/button/plugin.js	(revision 3446)
@@ -233,8 +233,14 @@
 	focus : function( index, ev )
 	{
-		var instance = CKEDITOR.ui.button._.instances[ index ];
+		var instance = CKEDITOR.ui.button._.instances[ index ],
+			retVal;
 
 		if ( instance.onfocus )
-			return ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false );
+			retVal = ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false );
+
+		// FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus. 
+		if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
+			ev.preventBubble();
+		return retVal;
 	}
 };
Index: /CKEditor/trunk/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/elementspath/plugin.js	(revision 3445)
+++ /CKEditor/trunk/_source/plugins/elementspath/plugin.js	(revision 3446)
@@ -93,4 +93,7 @@
 								' tabindex="-1"' +
 								' title="', editor.lang.elementsPath.eleTitle.replace( /%1/, name ), '"' +
+								( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ?
+								' onfocus="event.preventBubble();"' : '' ) +
+								' hidefocus="true" ' +  
 								' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', this.name, '\',', index, ', event);"' +
 								extra ,
