Index: /CKTester/runners/manual/manual.js
===================================================================
--- /CKTester/runners/manual/manual.js	(revision 7117)
+++ /CKTester/runners/manual/manual.js	(revision 7118)
@@ -10,9 +10,9 @@
 			centeredX = (screen.width - box.width)/2;
 
-		var popup = window.open( 'javascript:void(0)', 'test-scripts-window',
+		var popup = window.open( scriptsFrameUrl, 'scripts',
 			'height='+ box.height + ',width=' + box.width +
-			'left='+ centeredX + ',top=' + centeredY +
+			',left='+ centeredX + ',top=' + centeredY +
 			',toolbar=no,directories=no,status=no, menubar = no,scrollbars = no,resizable = no,modal = yes ' );
-		
+
 		YAHOO.util.Event.addListener( window, 'unload', function(){ popup.close(); });
 		return popup;
@@ -32,6 +32,29 @@
 		scriptsType = scriptsInput.nodeName.toLowerCase() == 'pre' ? 'tracwiki' : 'html';
 
-	var isPopup = YAHOO.util.Dom.hasClass( scriptsInput, 'popup' ), win;
+	var isPopup = YAHOO.util.Dom.hasClass( scriptsInput, 'popup' ), win,
+		scriptsFrameUrl = CKTESTER.cell.getAbsolutePath( 'runners/manual/scripts.html', true );
 
+	self.frameLoaded = function()
+	{
+		// Load scripts.
+		win.loadScripts( scripts, scriptsType );
+		scriptsInput.parentNode.removeChild( scriptsInput );
+		// Start the cell.
+		CKTESTER.cell.start();
+
+		var Evt = YAHOO.util.Event, complete = function ( data ) { CKTESTER.cell.complete( data ); self.close(); };
+
+		var doc = win.document;
+		// Receive decisions.
+		Evt.addListener( doc.getElementById( 'pass' ), 'click', function()
+		{
+			complete( { results : { failed : 0 , passed : 1 } } )
+		} );
+		Evt.addListener( doc.getElementById( 'fail' ), 'click', function()
+		{
+			complete( { results : { failed : 1 , passed : 0 } } )
+		} );
+	};
+	
 	if ( isPopup )
 		win = modalWin();
@@ -40,5 +63,5 @@
 		YAHOO.util.Dom.setStyle( body, 'overflow:hidden' );
 		var temp = document.createElement( 'div' );
-		temp.innerHTML = '<div id="scripts"><iframe id="scriptsFrame" src="javascript:void(0)"> </iframe></div>';
+		temp.innerHTML = '<div id="scripts"><iframe id="scriptsFrame" src="' + scriptsFrameUrl + '"> </iframe></div>';
 		body.appendChild( temp );
 		win = document.getElementById( 'scriptsFrame' ).contentWindow;
@@ -49,26 +72,3 @@
 		} );
 	}
-
-	YAHOO.util.Event.addListener( win, 'load', function()
-	{
-		// Load scripts.
-		win.loadScripts( scripts, scriptsType );
-		scriptsInput.parentNode.removeChild( scriptsInput );
-		// Start the cell.
-		CKTESTER.cell.start();
-
-		var Evt = YAHOO.util.Event,
-			complete = function ( data )
-			{
-				CKTESTER.cell.complete( data );
-				self.close();
-			};
-
-		var doc = win.document;
-		// Receive decisions.
-		Evt.addListener( doc.getElementById('pass'), 'click', function(){ complete( { results : { failed : 0 , passed : 1 } } ) } );
-		Evt.addListener( doc.getElementById('fail'), 'click', function(){ complete( { results : { failed : 1 , passed : 0 } } ) } );
-	} );
-
-	win.location.href = CKTESTER.cell.getAbsolutePath( 'runners/manual/scripts.html', true );
 } );
Index: /CKTester/runners/manual/scripts.html
===================================================================
--- /CKTester/runners/manual/scripts.html	(revision 7117)
+++ /CKTester/runners/manual/scripts.html	(revision 7118)
@@ -34,4 +34,6 @@
 	ct.html( source ).appendTo( document.body );
 }
+
+self.onload = ( opener || parent ).frameLoaded;
 </script>
 </body>
