Index: /FCKeditor/trunk/editor/_source/classes/fckstyle.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckstyle.js	(revision 1009)
+++ /FCKeditor/trunk/editor/_source/classes/fckstyle.js	(revision 1010)
@@ -468,6 +468,6 @@
 					//      has matches in the attribute value.
 					if ( attValue == null ||
-							( typeof attValue == 'string' && element.getAttribute( attName, 2 ) == attValue ) ||
-							attValue.test( element.getAttribute( attName, 2 ) ) )
+							( typeof attValue == 'string' && FCKDomTools.GetAttributeValue( element, attName ) == attValue ) ||
+							attValue.test( FCKDomTools.GetAttributeValue( element, attName ) ) )
 						return true ;
 				}
@@ -618,6 +618,6 @@
 					//      has matches in the attribute value.
 					if ( attValue == null ||
-							( attValue.test && attValue.test( element.getAttribute( attName, 2 ) ) ) ||
-							( typeof attValue == 'string' && element.getAttribute( attName, 2 ) == attValue ) )
+							( attValue.test && attValue.test( FCKDomTools.GetAttributeValue( element, attName ) ) ) ||
+							( typeof attValue == 'string' && FCKDomTools.GetAttributeValue( element, attName ) == attValue ) )
 						FCKDomTools.RemoveAttribute( element, attName ) ;
 				}
Index: /FCKeditor/trunk/editor/_source/internals/fckdomtools.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 1009)
+++ /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 1010)
@@ -446,5 +446,16 @@
 		for ( var i = 0 ; i < attributes.length ; i++ )
 		{
-			if ( attributes[i].specified )
+			if ( FCKBrowserInfo.IsIE && attributes[i].nodeName == 'class' )
+			{
+				// IE has a strange bug. If calling removeAttribute('className'), 
+				// the attributes collection will still contain the "class"
+				// attribute, which will be marked as "specified", even if the
+				// outerHTML of the element is not displaying the class attribute.
+				// Note : I was not able to reproduce it outside the editor,
+				// but I've faced it while working on the TC of #1391.
+				if ( element.className.length > 0 )
+					return true ;
+			}
+			else if ( attributes[i].specified )
 				return true ;
 		}
@@ -461,7 +472,6 @@
 			attributeName = 'className' ;
 
-		return element.removeAttribute( attributeName ) ;
-	},
-
+		return element.removeAttribute( attributeName, 0 ) ;
+	},
 
 	GetAttributeValue : function( element, att )
