Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6094)
+++ /CKEditor/trunk/CHANGES.html	(revision 6095)
@@ -55,4 +55,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6479">#6479</a> : BIDI: Language direction is not being preserved when pressing Enter after a paragraph format has been applied.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6670">#6670</a> : BIDI: Indent & List icons are not reversed when we apply RTL direction to a paragraph with any of Paragraph Formatting options.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6640">#6640</a> : Floating panels are now being closed when switching modes.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/floatpanel/plugin.js	(revision 6094)
+++ /CKEditor/trunk/_source/plugins/floatpanel/plugin.js	(revision 6095)
@@ -61,4 +61,6 @@
 				dir : editor.lang.dir
 			};
+
+			editor.on( 'mode', function(){ this.hide(); }, this );
 		},
 
Index: /CKEditor/trunk/_source/plugins/menubutton/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/menubutton/plugin.js	(revision 6094)
+++ /CKEditor/trunk/_source/plugins/menubutton/plugin.js	(revision 6095)
@@ -41,5 +41,5 @@
 			menu.onHide = CKEDITOR.tools.bind( function()
 				{
-					this.setState( _.previousState );
+					this.setState( this.modes && this.modes[ editor.mode ] ? _.previousState : CKEDITOR.TRISTATE_DISABLED );
 				},
 				this );
@@ -47,7 +47,5 @@
 			// Initialize the menu items at this point.
 			if ( this.onMenu )
-			{
 				menu.addListener( this.onMenu );
-			}
 		}
 
Index: /CKEditor/trunk/_source/plugins/richcombo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/richcombo/plugin.js	(revision 6094)
+++ /CKEditor/trunk/_source/plugins/richcombo/plugin.js	(revision 6095)
@@ -245,5 +245,5 @@
 						this.element.getFirst().removeClass( me.className + '_panel' );
 
-					me.setState( CKEDITOR.TRISTATE_OFF );
+					me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
 
 					me._.on = 0;
