Index: /CKEditor/trunk/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/font/plugin.js	(revision 3254)
+++ /CKEditor/trunk/_source/plugins/font/plugin.js	(revision 3255)
@@ -77,13 +77,22 @@
 							var currentValue = this.getValue();
 
-							var elementPath = ev.data.path;
+							var elementPath = ev.data.path,
+								elements = elementPath.elements;
 
-							for ( var value in styles )
+							// For each element into the elements path.
+							for ( var i = 0, element ; i < elements.length ; i++ )
 							{
-								if ( styles[ value ].checkActive( elementPath ) )
+								element = elements[i];
+
+								// Check if the element is removable by any of
+								// the styles.
+								for ( var value in styles )
 								{
-									if ( value != currentValue )
-										this.setValue( value );
-									return;
+									if ( styles[ value ].checkElementRemovable( element, true ) )
+									{
+										if ( value != currentValue )
+											this.setValue( value );
+										return;
+									}
 								}
 							}
Index: /CKEditor/trunk/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 3254)
+++ /CKEditor/trunk/_source/plugins/stylescombo/plugin.js	(revision 3255)
@@ -125,15 +125,24 @@
 						editor.on( 'selectionChange', function( ev )
 							{
-								var currentTag = this.getValue();
+								var currentValue = this.getValue();
 
 								var elementPath = ev.data.path;
-
-								for ( var tag in styles )
-								{
-									if ( styles[ tag ].checkActive( elementPath ) )
+									elements = elementPath.elements;
+
+								// For each element into the elements path.
+								for ( var i = 0, element ; i < elements.length ; i++ )
+								{
+									element = elements[i];
+
+									// Check if the element is removable by any of
+									// the styles.
+									for ( var value in styles )
 									{
-										if ( tag != currentTag )
-											this.setValue( tag );
-										return;
+										if ( styles[ value ].checkElementRemovable( element, true ) )
+										{
+											if ( value != currentValue )
+												this.setValue( value );
+											return;
+										}
 									}
 								}
