Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 3852)
+++ /CKEditor/trunk/CHANGES.html	(revision 3853)
@@ -111,5 +111,4 @@
 		<li><a href="http://dev.fckeditor.net/ticket/3903">#3903</a> : Color button plugin doesn't read config entry from editor instance correctly.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3801">#3801</a> : Comments at the start of the document was lost in IE.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/3879">#3879</a> : Color button panel was incorrect size on first open in webkit.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3871">#3871</a> : Unable to redo when undos to the front of snapshots stack.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3909">#3909</a> : Move focus from editor into a text input control is broken.</li>
Index: /CKEditor/trunk/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/floatpanel/plugin.js	(revision 3852)
+++ /CKEditor/trunk/_source/plugins/floatpanel/plugin.js	(revision 3853)
@@ -212,6 +212,13 @@
 							}
 
-							if ( panel.isLoaded )
-								setHeight();
+							if ( !CKEDITOR.env.gecko || panel.isLoaded )
+							{
+								// IE7 needs some time (setting the delay to 0ms won't work) to refresh
+								// the scrollHeight. (#3174)
+								if ( CKEDITOR.env.ie && CKEDITOR.env.version >= 7 )
+									setTimeout( setHeight, 50 );
+								else
+									setHeight();
+							}
 							else
 								panel.onLoad = setHeight;
Index: /CKEditor/trunk/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/panel/plugin.js	(revision 3852)
+++ /CKEditor/trunk/_source/plugins/panel/plugin.js	(revision 3853)
@@ -135,9 +135,4 @@
 					doc = iframe.getFrameDocument();
 
-				var win = doc.getWindow();
-
-				// Register the CKEDITOR global.
-				win.$.CKEDITOR = CKEDITOR;
-
 				// Initialize the IFRAME document body.
 				doc.$.open();
@@ -146,11 +141,4 @@
 				if ( CKEDITOR.env.isCustomDomain() )
 					doc.$.domain = document.domain;
-
-				var onLoad = CKEDITOR.tools.addFunction( CKEDITOR.tools.bind( function( ev )
-					{
-						this.isLoaded = true;
-						if ( this.onLoad )
-							this.onLoad();
-					}, this ) );
 
 				doc.$.write(
@@ -160,6 +148,5 @@
 							'<style>.' + className + '_container{visibility:hidden}</style>' +
 						'</head>' +
-						'<body class="cke_' + dir + ' cke_panel_frame ' + CKEDITOR.env.cssClass + '" style="margin:0;padding:0"' +
-						' onload="( window.CKEDITOR || window.top.CKEDITOR ).tools.callFunction(' + onLoad + ');">' +
+						'<body class="cke_' + dir + ' cke_panel_frame ' + CKEDITOR.env.cssClass + '" style="margin:0;padding:0">' +
 						'</body>' +
 						// It looks strange, but for FF2, the styles must go
@@ -169,4 +156,17 @@
 					'<\/html>' );
 				doc.$.close();
+
+				var win = doc.getWindow();
+
+				// Register the CKEDITOR global.
+				win.$.CKEDITOR = CKEDITOR;
+
+				win.on( 'load', function( ev )
+					{
+						this.isLoaded = true;
+						if ( this.onLoad )
+							this.onLoad();
+					},
+					this);
 
 				doc.on( 'keydown', function( evt )
