Index: fckstyle.js
===================================================================
--- fckstyle.js	(revision 1155)
+++ fckstyle.js	(working copy)
@@ -231,8 +231,9 @@
 						// Remove overrides defined to the same element name.
 						this._RemoveOverrides( pathElement, styleOverrides[ pathElementName ] ) ;
 
-						// Remove the element if no more attributes are available.
-						this._RemoveNoAttribElement( pathElement ) ;
+						// Remove the element if no more attributes are available and it's an inline style element
+						if ( this.GetType() == FCK_STYLE_INLINE)
+							this._RemoveNoAttribElement( pathElement ) ;
 					}
 				}
 				else if ( isBoundary )
@@ -486,7 +487,7 @@
 		switch ( this.GetType() )
 		{
 			case FCK_STYLE_BLOCK :
-				return this.CheckElementRemovable( elementPath.Block || elementPath.BlockLimit ) ;
+				return this.CheckElementRemovable( elementPath.Block || elementPath.BlockLimit, true ) ;
 
 			case FCK_STYLE_INLINE :
 
@@ -688,7 +689,8 @@
 			valueB = valueB.replace( /;$/, '' ).toLowerCase() ;
 		}
 
-		return ( valueA == valueB )
+		// Return true if they match or if valueA is null and valueB is an empty string
+		return ( valueA == valueB || ( valueA === null && valueB === '') )
 	},
 
 	GetFinalAttributeValue : function( attName )
