Index: /CKEditor/trunk/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/elementspath/plugin.js	(revision 3399)
+++ /CKEditor/trunk/_source/plugins/elementspath/plugin.js	(revision 3400)
@@ -26,4 +26,6 @@
 	};
 
+	var emptyHtml = '<span class="cke_empty">&nbsp;</span>';
+
 	CKEDITOR.plugins.add( 'elementspath',
 	{
@@ -48,5 +50,5 @@
 				{
 					if ( event.data.space == 'bottom' )
-						event.data.html += '<div id="' + spaceId + '" class="cke_path"><span class="cke_empty">&nbsp;</span></div>';
+						event.data.html += '<div id="' + spaceId + '" class="cke_path">' + emptyHtml + '</div>';
 				});
 
@@ -103,10 +105,10 @@
 					}
 
-					getSpaceElement().setHtml( html.join('') );
+					getSpaceElement().setHtml( html.join('') + emptyHtml );
 				});
 
 			editor.on( 'contentDomUnload', function()
 				{
-					getSpaceElement().setHtml( '<br>' );
+					getSpaceElement().setHtml( emptyHtml );
 				});
 
Index: /CKEditor/trunk/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/sourcearea/plugin.js	(revision 3399)
+++ /CKEditor/trunk/_source/plugins/sourcearea/plugin.js	(revision 3400)
@@ -19,5 +19,6 @@
 		editor.on( 'editingBlockReady', function()
 			{
-				var textarea;
+				var textarea,
+					onResize;
 
 				editor.addMode( 'source',
@@ -25,4 +26,7 @@
 						load : function( holderElement, data )
 						{
+							if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
+								holderElement.setStyle( 'position', 'relative' );
+
 							// Create the source area <textarea>.
 							textarea = new CKEDITOR.dom.element( 'textarea' );
@@ -43,24 +47,35 @@
 							};
 
-							if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
-								styles[ 'white-space' ] = 'normal';
-
-							textarea.setStyles( styles );
-
 							// The textarea height/width='100%' doesn't
 							// constraint to the 'td' in IE strick mode
 							if ( CKEDITOR.env.ie )
 							{
-								textarea.setStyles({
-									height : holderElement.$.clientHeight + 'px',
-									width : holderElement.$.clientWidth + 'px' });
+								if ( CKEDITOR.env.quirks || CKEDITOR.env.version < 8 )
+								{
+									// In IE, we must use absolute positioning to
+									// have the textarea filling the full content
+									// space height.
+									holderElement.setStyle( 'position', 'relative' );
+									styles[ 'position' ] = 'absolute';
+								}
+
+								if ( !CKEDITOR.env.quirks || CKEDITOR.env.version < 7 )
+								{
+									onResize = function()
+										{
+											textarea.setStyles({
+												height : holderElement.$.clientHeight + 'px',
+												width : holderElement.$.clientWidth + 'px' });
+										};
+									editor.on( 'resize', onResize );
+									onResize();
+								}
 							}
-
-							// By some yet unknown reason, we must stop the
-							// mousedown propagation for the textarea,
-							// otherwise it's not possible to place the caret
-							// inside of it (non IE).
-							if ( !CKEDITOR.env.ie )
+							else
 							{
+								// By some yet unknown reason, we must stop the
+								// mousedown propagation for the textarea,
+								// otherwise it's not possible to place the caret
+								// inside of it (non IE).
 								textarea.on( 'mousedown', function( evt )
 									{
@@ -70,4 +85,6 @@
 									} );
 							}
+
+							textarea.setStyles( styles );
 
 							// Reset the holder element and append the
@@ -112,4 +129,7 @@
 						{
 							textarea = null;
+
+							if ( onResize )
+								editor.removeListener( 'resize', onResize );
 						},
 
Index: /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 3399)
+++ /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 3400)
@@ -150,4 +150,7 @@
 						if ( CKEDITOR.env.ie )
 						{
+							if ( CKEDITOR.env.version < 8 )
+								iframe.setStyle( 'position', 'absolute' );
+
 							if ( isCustomDomain )
 							{
@@ -194,5 +197,5 @@
 							var fieldset = CKEDITOR.dom.element.createFromHtml(
 								'<fieldset style="height:100%' +
-									( CKEDITOR.env.quirks ? ';position:absolute' : '' ) +
+									( CKEDITOR.env.quirks ? ';position:relative' : '' ) +
 								'">' +
 									'<legend style="position:absolute;top:-1000px">' +
@@ -305,4 +308,7 @@
 							{
 								mainElement = holderElement;
+
+								if ( CKEDITOR.env.ie && ( CKEDITOR.env.quirks || CKEDITOR.env.version < 8 ) )
+									holderElement.setStyle( 'position', 'relative' );
 
 								// Create the iframe at load for all browsers
Index: /CKEditor/trunk/_source/skins/v2/mainui.css
===================================================================
--- /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 3399)
+++ /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 3400)
@@ -52,5 +52,11 @@
 	font-family: 'Courier New' , Monospace;
 	font-size: small;
+	background-color: #fff;
 	white-space: pre;
-	background-color: #fff;
 }
+
+.cke_skin_v2 .cke_browser_iequirks textarea.cke_source
+{
+	/* For IE6+Quirks only */
+	_white-space: normal;
+}
Index: /CKEditor/trunk/_source/themes/default/theme.js
===================================================================
--- /CKEditor/trunk/_source/themes/default/theme.js	(revision 3399)
+++ /CKEditor/trunk/_source/themes/default/theme.js	(revision 3400)
@@ -56,8 +56,8 @@
 					' tabindex="' + tabIndex + '">' +
 				'<span class="' , CKEDITOR.env.cssClass, ' cke_', editor.lang.dir, '">' +
-					'<table class="cke_editor" border="0" cellspacing="0" cellpadding="0" style="width:', width, ';height:', height, '"><tbody>' +
-						'<tr', topHtml		? '' : ' style="display:none"', '><td id="cke_top_'		, name, '" class="cke_top">'		, topHtml		, '</td></tr>' +
-						'<tr', contentsHtml	? '' : ' style="display:none"', '><td id="cke_contents_', name, '" class="cke_contents" style="height:100%">'	, contentsHtml	, '</td></tr>' +
-						'<tr', bottomHtml	? '' : ' style="display:none"', '><td id="cke_bottom_'	, name, '" class="cke_bottom">'		, bottomHtml	, '</td></tr>' +
+					'<table class="cke_editor" border="0" cellspacing="0" cellpadding="0" style="width:', width, '"><tbody>' +
+						'<tr', topHtml		? '' : ' style="display:none"', '><td id="cke_top_'		, name, '" class="cke_top">'	, topHtml		, '</td></tr>' +
+						'<tr', contentsHtml	? '' : ' style="display:none"', '><td id="cke_contents_', name, '" class="cke_contents" style="height:', height, '">', contentsHtml, '</td></tr>' +
+						'<tr', bottomHtml	? '' : ' style="display:none"', '><td id="cke_bottom_'	, name, '" class="cke_bottom">'	, bottomHtml	, '</td></tr>' +
 					'</tbody></table>' +
 					//Hide the container when loading skins, later restored by skin css.
