Index: /CKEditor/trunk/_source/plugins/print/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/print/plugin.js	(revision 3284)
+++ /CKEditor/trunk/_source/plugins/print/plugin.js	(revision 3285)
@@ -16,8 +16,4 @@
 		// Register the command.
 		var command = editor.addCommand( pluginName, CKEDITOR.plugins.print );
-
-		// It is imposible to print the inner document in Opera.
-		if ( CKEDITOR.env.opera )
-			command.state = CKEDITOR.TRISTATE_DISABLED;
 
 		// Register the toolbar button.
@@ -40,4 +36,5 @@
 		else
 			editor.document.$.execCommand( "Print" );
-	}
+	},
+	modes : { wysiwyg : !( CKEDITOR.env.opera ) }		// It is imposible to print the inner document in Opera.
 };
Index: /CKEditor/trunk/_source/plugins/save/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/save/plugin.js	(revision 3284)
+++ /CKEditor/trunk/_source/plugins/save/plugin.js	(revision 3285)
@@ -43,5 +43,7 @@
 		init : function( editor )
 		{
-			editor.addCommand( pluginName, saveCmd );
+			var command = editor.addCommand( pluginName, saveCmd );
+			command.modes = { wysiwyg : !!( editor.element.$.form ) };
+
 			editor.ui.addButton( 'Save',
 				{
Index: /CKEditor/trunk/_source/plugins/wsc/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wsc/plugin.js	(revision 3284)
+++ /CKEditor/trunk/_source/plugins/wsc/plugin.js	(revision 3285)
@@ -18,6 +18,5 @@
 
 		// SpellChecker doesn't work in Opera.
-		if ( CKEDITOR.env.opera )
-			command.state = CKEDITOR.TRISTATE_DISABLED;
+		command.modes = { wysiwyg : !( CKEDITOR.env.opera ) }
 
 		editor.ui.addButton( 'SpellChecker',
