Index: /FCKeditor/trunk/editor/_source/internals/fckdomtools.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 650)
+++ /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 651)
@@ -315,5 +315,5 @@
 	},
 
-	PaddingNodeTag : ( new Date() ).getTime() + "_documentPadding",
+	PaddingNode : null,
 
 	EnforcePaddingNode : function( doc, tagName )
@@ -327,11 +327,16 @@
 		if ( FCKBrowserInfo.IsGecko && FCKListsLib.NonEmptyBlockElements[ tagName ] )
 			FCKTools.AppendBogusBr( node ) ;
-		node.id = this.PaddingNodeTag ;
-		doc.body.appendChild( node ) ;
+		this.PaddingNode = node ;
+		if ( doc.body.childNodes.length == 1 
+				&& doc.body.firstChild.nodeType == 1
+				&& doc.body.firstChild.getAttribute( '_moz_dirty' ) != null )
+			doc.body.replaceChild( node, doc.body.firstChild ) ;
+		else
+			doc.body.appendChild( node ) ;
 	},
 
 	CheckAndRemovePaddingNode : function( doc, tagName, dontRemove )
 	{
-		var paddingNode = doc.getElementById( this.PaddingNodeTag ) ;
+		var paddingNode = this.PaddingNode ;
 		if ( ! paddingNode )
 			return ;
@@ -344,5 +349,5 @@
 				&& String(paddingNode.firstChild.tagName).toLowerCase() != 'br' ) )
 		{
-			paddingNode.removeAttribute( 'id' ) ;
+			this.PaddingNode = null ;
 			return ;
 		}
@@ -350,5 +355,8 @@
 		// Now we're sure the padding node exists, and it is unchanged, remove it.
 		if ( !dontRemove )
-		paddingNode.parentNode.removeChild( paddingNode ) ;
+		{
+			paddingNode.parentNode.removeChild( paddingNode ) ;
+			this.PaddingNode = null ;
+		}
 	}
 } ;
