Index: /CKEditor/trunk/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/button/plugin.js	(revision 6214)
+++ /CKEditor/trunk/_source/plugins/button/plugin.js	(revision 6215)
@@ -99,9 +99,21 @@
 		instance.index = index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
 
+		// Indicate a mode sensitive button.
 		if ( this.modes )
 		{
+			var modeStates = {};
+			editor.on( 'beforeModeUnload', function()
+				{
+					modeStates[ editor.mode ] = this._.state;
+				}, this );
+
 			editor.on( 'mode', function()
 				{
 					this.setState( this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+					var mode = editor.mode;
+					// Restore saved button state.
+					this.setState( this.modes[ mode ] ?
+						modeStates[ mode ] != undefined ? modeStates[ mode ] :
+							CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
 				}, this);
 		}
Index: /CKEditor/trunk/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/scayt/plugin.js	(revision 6214)
+++ /CKEditor/trunk/_source/plugins/scayt/plugin.js	(revision 6215)
@@ -596,4 +596,5 @@
 						title : CKEDITOR.env.opera ? lang.opera_title : lang.title,
 						className : 'cke_button_scayt',
+						modes : { wysiwyg : 1 },
 						onRender: function()
 						{
