Index: wysiwyg.init.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.init.js,v
retrieving revision 1.3
diff -u -p -r1.3 wysiwyg.init.js
--- wysiwyg.init.js	1 Feb 2009 09:20:48 -0000	1.3
+++ wysiwyg.init.js	14 Feb 2010 01:43:05 -0000
@@ -1,8 +1,22 @@
 // $Id: wysiwyg.init.js,v 1.3 2009/02/01 09:20:48 sun Exp $
 
+jQuery.support = jQuery.support || {}; // D6- only.
+
 Drupal.wysiwyg = Drupal.wysiwyg || { 'instances': {} };
 
 Drupal.wysiwyg.editor = Drupal.wysiwyg.editor || { 'init': {}, 'attach': {}, 'detach': {}, 'instance': {} };
 
 Drupal.wysiwyg.plugins = Drupal.wysiwyg.plugins || {};
 
+(function ($) {
+  // Determine support for queryCommandEnabled().
+  // An exception should be thrown for nonexistent commands.
+  // Safari and Chrome (WebKit based) return -1 instead.
+  try {
+    document.queryCommandEnabled('__wysiwygTestCommand');
+    $.support.queryCommandEnabled = false;
+  }
+  catch () {
+    $.support.queryCommandEnabled = true;
+  }
+})(jQuery);
Index: editors/js/fckeditor-2.6.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/js/fckeditor-2.6.js,v
retrieving revision 1.16.2.3
diff -u -p -r1.16.2.3 fckeditor-2.6.js
--- editors/js/fckeditor-2.6.js	13 Feb 2010 23:58:41 -0000	1.16.2.3
+++ editors/js/fckeditor-2.6.js	14 Feb 2010 01:48:44 -0000
@@ -123,6 +123,10 @@ Drupal.wysiwyg.editor.instance.fckeditor
           return FCK_TRISTATE_DISABLED;
         }
         var state = instance.FCK.GetNamedCommandState(this.Name);
+        // FCKeditor sets the wrong state in WebKit browsers.
+        if (!$.support.queryCommandEnabled && state == FCK_TRISTATE_DISABLED) {
+          state = FCK_TRISTATE_OFF;
+        }
         if (state == FCK_TRISTATE_OFF && instance.FCK.EditMode == FCK_EDITMODE_WYSIWYG) {
           if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
             var node = instance.FCKSelection.GetSelectedElement();
