Index: _source/plugins/elementspath/plugin.js
===================================================================
--- _source/plugins/elementspath/plugin.js	(revision 3385)
+++ _source/plugins/elementspath/plugin.js	(working copy)
@@ -25,6 +25,8 @@
 		}
 	};
 
+	var emptyHtml = '<span class="cke_empty">&nbsp;</span>';
+
 	CKEDITOR.plugins.add( 'elementspath',
 	{
 		requires : [ 'selection' ],
@@ -47,7 +49,7 @@
 			editor.on( 'themeSpace', function( event )
 				{
 					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>';
 				});
 
 			editor.on( 'selectionChange', function( ev )
@@ -102,12 +104,12 @@
 						element = element.getParent();
 					}
 
-					getSpaceElement().setHtml( html.join('') );
+					getSpaceElement().setHtml( html.join('') + emptyHtml );
 				});
 
 			editor.on( 'contentDomUnload', function()
 				{
-					getSpaceElement().setHtml( '<br>' );
+					getSpaceElement().setHtml( emptyHtml );
 				});
 
 			editor.addCommand( 'elementsPathFocus', commands.toolbarFocus );
Index: _source/plugins/sourcearea/plugin.js
===================================================================
--- _source/plugins/sourcearea/plugin.js	(revision 3385)
+++ _source/plugins/sourcearea/plugin.js	(working copy)
@@ -18,12 +18,16 @@
 
 		editor.on( 'editingBlockReady', function()
 			{
-				var textarea;
+				var textarea,
+					onResize;
 
 				editor.addMode( 'source',
 					{
 						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' );
 							textarea.setAttributes(
@@ -39,21 +43,35 @@
 								outline	: 'none',
 								'text-align' : 'left' });
 
-							// 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' );
+									textarea.setStyle( '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 )
 									{
 										evt = evt.data.$;
@@ -103,6 +121,9 @@
 						unload : function( holderElement )
 						{
 							textarea = null;
+
+							if ( onResize )
+								editor.removeListener( 'resize', onResize );
 						},
 
 						focus : function()
Index: _source/plugins/wysiwygarea/plugin.js
===================================================================
--- _source/plugins/wysiwygarea/plugin.js	(revision 3385)
+++ _source/plugins/wysiwygarea/plugin.js	(working copy)
@@ -149,6 +149,9 @@
 
 						if ( CKEDITOR.env.ie )
 						{
+							if ( CKEDITOR.env.version < 8 )
+								iframe.setStyle( 'position', 'absolute' );
+
 							if ( isCustomDomain )
 							{
 								// The document domain must be set within the src
@@ -193,7 +196,7 @@
 							// Accessibility label for IE.
 							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">' +
 										CKEDITOR.tools.htmlEncode( accTitle ) +
@@ -305,6 +308,9 @@
 							{
 								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
 								// except FF and IE with custom domain.
 								if ( !isCustomDomain || !CKEDITOR.env.gecko )
Index: _source/skins/v2/mainui.css
===================================================================
--- _source/skins/v2/mainui.css	(revision 3385)
+++ _source/skins/v2/mainui.css	(working copy)
@@ -51,6 +51,12 @@
 {
 	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: _source/themes/default/theme.js
===================================================================
--- _source/themes/default/theme.js	(revision 3385)
+++ _source/themes/default/theme.js	(working copy)
@@ -55,10 +55,10 @@
 					' title="', ( CKEDITOR.env.gecko ? ' ' : '' ), '"' +
 					' 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.
 					'<style>.', editor.skinClass, '{visibility:hidden;}</style>' +
