Index: _source/plugins/styles/plugin.js
===================================================================
--- _source/plugins/styles/plugin.js	(revision 5206)
+++ _source/plugins/styles/plugin.js	Fri Mar 05 01:33:56 CST 2010
@@ -199,9 +199,9 @@
 							continue;
 
 						var elementAttr = element.getAttribute( attName ) || '';
-						if ( attribs[ attName ] ==
-							 ( attName == 'style' ?
-							   normalizeCssText( elementAttr, false ) : elementAttr  ) )
+						if ( attName == 'style' ?
+							compareCssText( attribs[ attName ], normalizeCssText( elementAttr, false ) ) 
+							: attribs[ attName ] == elementAttr  )
 						{
 							if ( !fullMatch )
 								return true;
@@ -1208,7 +1208,39 @@
 							 .replace( /,\s+/g, ',' ) // Trimming spaces after comma (e.g. font-family name)(#4107).
 							 .toLowerCase();
 	}
-
+	
+	// Turn inline style text properties into one hash.
+	function parseStyleText( styleText )
+	{
+		var retval = {};
+		styleText
+		   .replace( /&quot;/g, '"' )
+		   .replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value )
+		{
+			retval[ name ] = value;
+		} );
+		return retval;
+	}
+
+	function compareCssText( source, target )
+	{
+		typeof source == 'string' && ( source = parseStyleText( source ) );
+		typeof target == 'string' && ( target = parseStyleText( target ) );
+		for( var name in source )
+		{
+			// Value 'inheirt'  is treated as a wildcard,
+			// which will matches any value.   
+			if ( !( name in target &&
+					( target[ name ] == source[ name ]
+						|| source[ name ] == 'inherit'
+						|| target[ name ] == 'inherit' ) ) )
+			{
+				return false;
+			}
+		}
+		return true;
+	}
+
 	function applyStyle( document, remove )
 	{
 		// Get all ranges from the selection.
Index: _source/plugins/colorbutton/plugin.js
===================================================================
--- _source/plugins/colorbutton/plugin.js	(revision 5221)
+++ _source/plugins/colorbutton/plugin.js	Fri Mar 05 01:01:52 CST 2010
@@ -86,7 +86,7 @@
 
 					panel.hide();
 
-					var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], color && { color : color } );
+					var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], { color : color || 'inherit' } );
 
 					editor.fire( 'saveSnapshot' );
 					if ( color )
