Index: /CKEditor/trunk/_source/core/dom/element.js
===================================================================
--- /CKEditor/trunk/_source/core/dom/element.js	(revision 3486)
+++ /CKEditor/trunk/_source/core/dom/element.js	(revision 3487)
@@ -801,5 +801,6 @@
 				function()
 				{
-					return this.$.attributes.length > 0;
+					var attributes = this.$.attributes;
+					return ( attributes.length > 1 || ( attributes.length == 1 && attributes[0].nodeName != '_cke_expando' ) );
 				},
 
@@ -955,4 +956,6 @@
 					if ( name == 'class' )
 						name = 'className';
+					else if ( name == 'tabindex' )
+						name = 'tabIndex';
 					standard.call( this, name );
 				};
Index: /CKEditor/trunk/_source/tests/core/dom/element.html
===================================================================
--- /CKEditor/trunk/_source/tests/core/dom/element.html	(revision 3486)
+++ /CKEditor/trunk/_source/tests/core/dom/element.html	(revision 3487)
@@ -408,15 +408,16 @@
 		{
 			var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
-			assert.areEqual( 1, element.getAttribute( 'tabindex' ) );
+
+			assert.areEqual( 1, element.getAttribute( 'tabindex' ), 'tabindex is wrong' );
 			element.removeAttribute( 'tabindex' );
-			assert.areEqual( 'hasExpando', element.getAttribute( 'class' ) );
+
+			assert.areEqual( 'hasExpando', element.getAttribute( 'class' ), 'class is wrong' );
 			element.removeAttribute( 'class' );
-			if( CKEDITOR.env.ie )
-				assert.areEqual( 'FLOAT: right', element.getAttribute( 'style' ) );
-			else
-				assert.areEqual( 'float: right;', element.getAttribute( 'style' ) );
+
+			assert.areEqual( 'float:right', element.getAttribute( 'style' ).toLowerCase().replace( /[ ;]/g, '' ) );
+
 			element.removeAttribute( 'style' );
 			element.removeAttribute( 'id' );
-			assert.isFalse( element.hasAttributes() );
+			assert.isFalse( element.hasAttributes(), 'hasAttributes should be false' );
 		},
 
