Index: _whatsnew.html
===================================================================
--- _whatsnew.html	(revision 1453)
+++ _whatsnew.html	(working copy)
@@ -71,6 +71,8 @@
 			is now enforced only when ForcePasteAsPlainText = true.</li>
 		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1336">#1336</a>] Sometimes
 			the autogrow plugin didn't work properly in Firefox.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1728">#1728</a>] External toolbars
+			are now properly sized in Opera.</li>
 	</ul>
 	<p>
 		<a href="_whatsnew_history.html">See previous versions history</a>
Index: editor/_source/internals/fcktoolbarset.js
===================================================================
--- editor/_source/internals/fcktoolbarset.js	(revision 1453)
+++ editor/_source/internals/fcktoolbarset.js	(working copy)
@@ -90,7 +90,25 @@
 
 			// Initialize the IFRAME document body.
 			eTargetDocument.open() ;
-			eTargetDocument.write( '<html><head>' + sBase + '<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = adjust; window.onload = function () {window.setTimeout( adjust, 0 );}</script></head><body style="overflow: hidden">' + document.getElementById( 'xToolbarSpace' ).innerHTML + '</body></html>' ) ;
+			eTargetDocument.write( '<html><head>' + sBase + '<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; '
+					+ 'window.onresize = window.onload = '
+					+ 'function(){'		// poll scrollHeight until it no longer changes for 1 sec.
+					+ 'var timer = null;'
+					+ 'var lastHeight = -1;'
+					+ 'var lastChange = 0;'
+					+ 'var poller = function(){'
+					+ 'var currentHeight = document.body.scrollHeight || 0;'
+					+ 'var currentTime = (new Date()).getTime();'
+					+ 'if (currentHeight != lastHeight){'
+					+ 'lastChange = currentTime;'
+					+ 'adjust();'
+					+ 'lastHeight = document.body.scrollHeight;'
+					+ '}'
+					+ 'if (lastChange < currentTime - 1000) clearInterval(timer);'
+					+ '};'
+					+ 'timer = setInterval(poller, 100);'
+					+ '}'
+					+ '</script></head><body style="overflow: hidden">' + document.getElementById( 'xToolbarSpace' ).innerHTML + '</body></html>' ) ;
 			eTargetDocument.close() ;
 
 			FCKTools.AddEventListener( eTargetDocument, 'contextmenu', FCKTools.CancelEvent ) ;
