Index: /FCKeditor/trunk/editor/_source/classes/fckcontextmenu.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckcontextmenu.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/classes/fckcontextmenu.js	(revision 1282)
@@ -124,5 +124,5 @@
 			if( !overrideButton )
 			{
-				var doc = e.target.ownerDocument ;
+				var doc = FCKTools.GetElementDocument( e.target ) ;
 				overrideButton = FCKContextMenu_OverrideButton = doc.createElement('input') ;
 				overrideButton.type = 'button' ;
Index: /FCKeditor/trunk/editor/_source/classes/fckenterkey.js
===================================================================
--- /FCKeditor/trunk/editor/_source/classes/fckenterkey.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/classes/fckenterkey.js	(revision 1282)
@@ -421,5 +421,5 @@
 			if ( eNextBlock.nodeName.IEquals( 'li' ) && eNextBlock.firstChild
 					&& eNextBlock.firstChild.nodeName.IEquals( ['ul', 'ol'] ) )
-				eNextBlock.insertBefore( eNextBlock.ownerDocument.createTextNode( '\xa0' ), eNextBlock.firstChild ) ;
+				eNextBlock.insertBefore( FCKTools.GetElementDocument( eNextBlock ).createTextNode( '\xa0' ), eNextBlock.firstChild ) ;
 			// Move the selection to the end block.
 			if ( eNextBlock )
Index: /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js
===================================================================
--- /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/commandclasses/fckblockquotecommand.js	(revision 1282)
@@ -127,5 +127,5 @@
 				if ( block.nodeName.IEquals( 'blockquote' ) )
 				{
-					var docFrag = block.ownerDocument.createDocumentFragment() ;
+					var docFrag = FCKTools.GetElementDocument( block ).createDocumentFragment() ;
 					while ( block.firstChild )
 					{
@@ -204,9 +204,9 @@
 					if ( node.nodeName.IEquals( 'div' ) )
 					{
-						var docFrag = node.ownerDocument.createDocumentFragment() ;
+						var docFrag = FCKTools.GetElementDocument( node ).createDocumentFragment() ;
 						var needBeginBr = firstTime && node.previousSibling && 
 							!FCKListsLib.BlockBoundaries[node.previousSibling.nodeName.toLowerCase()] ;
 						if ( firstTime && needBeginBr )
-							docFrag.appendChild( node.ownerDocument.createElement( 'br' ) ) ;
+							docFrag.appendChild( FCKTools.GetElementDocument( node ).createElement( 'br' ) ) ;
 						var needEndBr = node.nextSibling && 
 							!FCKListsLib.BlockBoundaries[node.nextSibling.nodeName.toLowerCase()] ;
@@ -214,5 +214,5 @@
 							docFrag.appendChild( node.removeChild( node.firstChild ) ) ;
 						if ( needEndBr )
-							docFrag.appendChild( node.ownerDocument.createElement( 'br' ) ) ;
+							docFrag.appendChild( FCKTools.GetElementDocument( node ).createElement( 'br' ) ) ;
 						node.parentNode.replaceChild( docFrag, node ) ;
 						firstTime = false ;
Index: /FCKeditor/trunk/editor/_source/commandclasses/fcklistcommands.js
===================================================================
--- /FCKeditor/trunk/editor/_source/commandclasses/fcklistcommands.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/commandclasses/fcklistcommands.js	(revision 1282)
@@ -253,5 +253,5 @@
 			FCKDomTools.SetElementMarker( markerObj, itemNode, '_FCK_ListItem_Processed', true ) ;
 		}
-		var fakeParent = groupObj.root.ownerDocument.createElement( this.TagName ) ;
+		var fakeParent = FCKTools.GetElementDocument( groupObj.root ).createElement( this.TagName ) ;
 		for ( var i = 0 ; i < selectedListItems.length ; i++ )
 		{
@@ -271,5 +271,5 @@
 	{
 		var contents = groupObj.contents ;
-		var doc = groupObj.root.ownerDocument ;
+		var doc = FCKTools.GetElementDocument( groupObj.root ) ;
 		var listContents = [] ;
 
Index: /FCKeditor/trunk/editor/_source/internals/fck.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/internals/fck.js	(revision 1282)
@@ -881,5 +881,5 @@
 				if ( !paddingNode.childNodes.firstChild )
 				{
-					paddingNode.appendChild( paddingNode.ownerDocument.createTextNode( '\ufeff' ) ) ;
+					paddingNode.appendChild( FCKTools.GetElementDocument( paddingNode ).createTextNode( '\ufeff' ) ) ;
 					clearContents = true ;
 				}
@@ -1159,2 +1159,3 @@
 
 
+
Index: /FCKeditor/trunk/editor/_source/internals/fckdomtools.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/internals/fckdomtools.js	(revision 1282)
@@ -610,5 +610,5 @@
 	{
 		var retval = [] ;
-		while ( node && node != node.ownerDocument.documentElement )
+		while ( node && node != FCKTools.GetElementDocument( node ).documentElement )
 		{
 			var parentNode = node.parentNode ;
@@ -768,5 +768,5 @@
 		if ( ! listArray || listArray.length < baseIndex + 1 )
 			return null ;
-		var doc = listArray[baseIndex].parent.ownerDocument ;
+		var doc = FCKTools.GetElementDocument( listArray[baseIndex].parent ) ;
 		var retval = doc.createDocumentFragment() ;
 		var rootNode = null ;
@@ -936,5 +936,5 @@
 	{
 		var currentElement = element ;
-		while ( currentElement != currentElement.ownerDocument.documentElement )
+		while ( currentElement != FCKTools.GetElementDocument( currentElement ).documentElement )
 		{
 			if ( this.GetCurrentElementStyle( w, currentElement, 'position' ) != 'static' )
@@ -983,2 +983,3 @@
 
 
+
Index: /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js	(revision 1282)
@@ -367,5 +367,5 @@
 	var baseColIdx = colIdx - selectionGeometry.x ;
 	var baseRowIdx = rowIdx - selectionGeometry.y ;
-	var cellContents = refCell.ownerDocument.createDocumentFragment() ;
+	var cellContents = FCKTools.GetElementDocument( refCell ).createDocumentFragment() ;
 	for ( var i = 0 ; i < selectionGeometry.height ; i++ ) 
 	{
@@ -386,5 +386,5 @@
 		}
 		if ( rowChildNodesCount > 0 )
-			cellContents.appendChild( refCell.ownerDocument.createElement( 'br' ) ) ;
+			cellContents.appendChild( FCKTools.GetElementDocument( refCell ).createElement( 'br' ) ) ;
 	}
 
@@ -431,9 +431,9 @@
 	var nextCell = target.nextCell ;
 
-	var cellContents = refCell.ownerDocument.createDocumentFragment() ;
+	var cellContents = FCKTools.GetElementDocument( refCell ).createDocumentFragment() ;
 	while ( nextCell && nextCell.childNodes && nextCell.childNodes.length > 0 )
 		cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
 	if ( cellContents.firstChild )
-		cellContents.insertBefore( nextCell.ownerDocument.createElement( 'br' ), cellContents.firstChild ) ;
+		cellContents.insertBefore( FCKTools.GetElementDocument( nextCell ).createElement( 'br' ), cellContents.firstChild ) ;
 	refCell.appendChild( cellContents ) ;
 	this._MarkCells( [nextCell], '_Replace' ) ;
@@ -461,5 +461,5 @@
 		// new cell gets floor(colSpan/2).
 		var newCellSpan = Math.ceil( cellSpan / 2 ) ;
-		var newCell = refCell.ownerDocument.createElement( 'td' ) ;
+		var newCell = FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ;
 		if ( FCKBrowserInfo.IsGeckoLike )
 			FCKTools.AppendBogusBr( newCell ) ;
@@ -489,5 +489,5 @@
 			{
 				newRow.push( refCell ) ;
-				newRow.push( refCell.ownerDocument.createElement( 'td' ) ) ;
+				newRow.push( FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ) ;
 				if ( FCKBrowserInfo.IsGeckoLike )
 					FCKTools.AppendBogusBr( newRow[newRow.length - 1] ) ;
@@ -756,5 +756,5 @@
 	for ( var i = 0 ; i < tableMap.length ; i++ )
 	{
-		var rowObj = table.ownerDocument.createElement( 'tr' ) ;
+		var rowObj = FCKTools.GetElementDocument( table ).createElement( 'tr' ) ;
 		for ( var j = 0 ; j < tableMap[i].length ; )
 		{
Index: /FCKeditor/trunk/editor/_source/internals/fckxhtml.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fckxhtml.js	(revision 1281)
+++ /FCKeditor/trunk/editor/_source/internals/fckxhtml.js	(revision 1282)
@@ -28,5 +28,5 @@
 FCKXHtml.GetXHTML = function( node, includeNode, format )
 {
-	FCKDomTools.CheckAndRemovePaddingNode( node.ownerDocument, FCKConfig.EnterMode ) ;
+	FCKDomTools.CheckAndRemovePaddingNode( FCKTools.GetElementDocument( node ), FCKConfig.EnterMode ) ;
 	FCKXHtmlEntities.Initialize() ;
 
Index: /FCKeditor/trunk/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- /FCKeditor/trunk/editor/plugins/dragresizetable/fckplugin.js	(revision 1281)
+++ /FCKeditor/trunk/editor/plugins/dragresizetable/fckplugin.js	(revision 1282)
@@ -308,5 +308,5 @@
 		var mouseX = evt.clientX ;
 		var mouseY = evt.clientY ;
-		if ( node.ownerDocument == document )
+		if ( FCKTools.GetElementDocument( node ) == document )
 		{
 			var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
@@ -372,5 +372,5 @@
 		// Convert mouse coordinates in reference to the outer iframe.
 		var node = evt.srcElement || evt.target ;
-		if ( node.ownerDocument == FCK.EditorDocument )
+		if ( FCKTools.GetElementDocument( node ) == FCK.EditorDocument )
 		{
 			var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
