Index: /CKEditor/branches/prototype/_source/core/editor.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/editor.js	(revision 2751)
+++ /CKEditor/branches/prototype/_source/core/editor.js	(revision 2752)
@@ -362,5 +362,5 @@
 		{
 			var command = this.getCommand( commandName );
-			if ( command )
+			if ( command && command.state != CKEDITOR.TRISTATE_DISABLED )
 				return command.exec( this, data );
 
Index: /CKEditor/branches/prototype/_source/lang/en.js
===================================================================
--- /CKEditor/branches/prototype/_source/lang/en.js	(revision 2751)
+++ /CKEditor/branches/prototype/_source/lang/en.js	(revision 2752)
@@ -134,4 +134,7 @@
 	linkNoEmail			: 'Please type the e-mail address',
 
+	// Unlink command.
+	unlink			: 'Unlink',
+
 	// Dialog titles.
 	formProp		: 'Form Properties',
Index: /CKEditor/branches/prototype/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/button/plugin.js	(revision 2751)
+++ /CKEditor/branches/prototype/_source/plugins/button/plugin.js	(revision 2752)
@@ -194,11 +194,14 @@
 			case CKEDITOR.TRISTATE_ON :
 				element.addClass( 'cke_on' );
+				element.removeClass( 'cke_off' );
 				element.removeClass( 'cke_disabled' );
 				break;
 			case CKEDITOR.TRISTATE_DISABLED :
 				element.addClass( 'cke_disabled' );
+				element.removeClass( 'cke_off' );
 				element.removeClass( 'cke_on' );
 				break;
 			default :
+				element.addClass( 'cke_off' );
 				element.removeClass( 'cke_on' );
 				element.removeClass( 'cke_disabled' );
Index: /CKEditor/branches/prototype/_source/skins/default/toolbar.css
===================================================================
--- /CKEditor/branches/prototype/_source/skins/default/toolbar.css	(revision 2751)
+++ /CKEditor/branches/prototype/_source/skins/default/toolbar.css	(revision 2752)
@@ -79,7 +79,16 @@
 }
 
-.cke_skin_default a:hover.cke_button,
-.cke_skin_default a:focus.cke_button,
-.cke_skin_default a:active.cke_button	/* IE */
+.cke_skin_default a.cke_button.cke_disabled
+{
+	filter: alpha(opacity=30); /* IE */
+	opacity : 0.3; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_default a.cke_off:hover.cke_button,
+.cke_skin_default a.cke_off:focus.cke_button,
+.cke_skin_default a.cke_off:active.cke_button,	/* IE */
+.cke_skin_default a.cke_on:hover.cke_button,
+.cke_skin_default a.cke_on:focus.cke_button,
+.cke_skin_default a.cke_on:active.cke_button	/* IE */
 {
 	border: solid 1px #316ac5;
