Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3688)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3689)
@@ -1,3 +1,3 @@
-﻿/*
+﻿﻿/*
 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -330,5 +330,5 @@
 				if ( CKEDITOR.env.ie6Compat )
 				{
-					var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument();
+					var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
 					coverDoc.on( 'keydown', focusKeydownHandler, this, null, 0 );
 				}
@@ -1401,5 +1401,5 @@
 			if ( CKEDITOR.env.ie6Compat )
 			{
-				var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument();
+				var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
 				coverDoc.removeListener( 'mousemove', mouseMoveHandler );
 				coverDoc.removeListener( 'mouseup', mouseUpHandler );
@@ -1417,5 +1417,5 @@
 				if ( CKEDITOR.env.ie6Compat )
 				{
-					var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument();
+					var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
 					coverDoc.on( 'mousemove', mouseMoveHandler );
 					coverDoc.on( 'mouseup', mouseUpHandler );
@@ -1475,5 +1475,5 @@
 			if ( CKEDITOR.env.ie6Compat )
 			{
-				var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument();
+				var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
 				coverDoc.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } );
 				coverDoc.on( 'mouseup', mouseUpHandler, dialog, { part : partName } );
@@ -1546,5 +1546,5 @@
 			if ( CKEDITOR.env.ie6Compat )
 			{
-				var coverDoc = CKEDITOR.document.getById( 'cke_dialog_background_iframe' ).getFrameDocument();
+				var coverDoc = coverElement.getChild( 0 ).getFrameDocument();
 				coverDoc.removeListener( 'mouseup', mouseUpHandler );
 				coverDoc.removeListener( 'mousemove', mouseMoveHandler );
@@ -1570,4 +1570,5 @@
 
 	var resizeCover;
+	var coverElement;
 
 	var addCover = function( editor )
@@ -1575,49 +1576,55 @@
 		var win = CKEDITOR.document.getWindow();
 
-		var html = [
-				'<div style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
-				'; z-index: ', editor.config.baseFloatZIndex,
-				'; top: 0px; left: 0px; ',
-				'background-color: ', editor.config.dialog_backgroundCoverColor,
-				'" id="cke_dialog_background_cover">'
-			];
-
-		if ( CKEDITOR.env.ie6Compat )
-		{
-			// Support for custom document.domain in IE.
-			var isCustomDomain = CKEDITOR.env.isCustomDomain();
-
-			html.push(
-				'<iframe' +
-					' hidefocus="true"' +
-					' frameborder="0"' +
-					' id="cke_dialog_background_iframe"' +
-					' src="javascript:' );
-
-			html.push(
-					isCustomDomain ?
-						'void((function(){' +
-							'document.open();' +
-							'document.domain=\'' + document.domain + '\';' +
-							'document.close();' +
-						'})())'
-					:
-						'\'\'' );
-
-			html.push(
-					'"' +
-					' style="' +
-						'position:absolute;' +
-						'left:0;' +
-						'top:0;' +
-						'width:100%;' +
-						'height: 100%;' +
-						'progid:DXImageTransform.Microsoft.Alpha(opacity=0)">' +
-				'</iframe>' );
-		}
-
-		html.push( '</div>' );
-
-		var element = CKEDITOR.dom.element.createFromHtml( html.join( '' ) );
+		if ( !coverElement )
+		{
+			var html = [
+					'<div style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
+					'; z-index: ', editor.config.baseFloatZIndex,
+					'; top: 0px; left: 0px; ',
+					'background-color: ', editor.config.dialog_backgroundCoverColor,
+					'" id="cke_dialog_background_cover">'
+				];
+
+
+			if ( CKEDITOR.env.ie6Compat )
+			{
+				// Support for custom document.domain in IE.
+				var isCustomDomain = CKEDITOR.env.isCustomDomain();
+
+				html.push(
+					'<iframe' +
+						' hidefocus="true"' +
+						' frameborder="0"' +
+						' id="cke_dialog_background_iframe"' +
+						' src="javascript:' );
+
+				html.push(
+						isCustomDomain ?
+							'void((function(){' +
+								'document.open();' +
+								'document.domain=\'' + document.domain + '\';' +
+								'document.close();' +
+							'})())'
+						:
+							'\'\'' );
+
+				html.push(
+						'"' +
+						' style="' +
+							'position:absolute;' +
+							'left:0;' +
+							'top:0;' +
+							'width:100%;' +
+							'height: 100%;' +
+							'progid:DXImageTransform.Microsoft.Alpha(opacity=0)">' +
+					'</iframe>' );
+			}
+
+			html.push( '</div>' );
+
+			coverElement = CKEDITOR.dom.element.createFromHtml( html.join( '' ) );
+		}
+
+		var element = coverElement;
 
 		var resizeFunc = function()
@@ -1673,21 +1680,20 @@
 	var removeCover = function()
 	{
-		var element = CKEDITOR.document.getById( 'cke_dialog_background_cover' ),
-			win = CKEDITOR.document.getWindow();
-		if ( element )
-		{
-			element.remove();
-			win.removeListener( 'resize', resizeCover );
-
-			if ( CKEDITOR.env.ie6Compat )
-			{
-				win.$.setTimeout( function()
-					{
-						var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler;
-						window.onscroll = prevScrollHandler || null;
-					}, 0 );
-			}
-			resizeCover = null;
-		}
+		if ( !coverElement )
+			return;
+		
+		var win = CKEDITOR.document.getWindow();
+		coverElement.remove();
+		win.removeListener( 'resize', resizeCover );
+
+		if ( CKEDITOR.env.ie6Compat )
+		{
+			win.$.setTimeout( function()
+				{
+					var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler;
+					window.onscroll = prevScrollHandler || null;
+				}, 0 );
+		}
+		resizeCover = null;
 	};
 
