diff --git a/exec/irc.js b/exec/irc.js
index f3ec4f44628a976af5ee7951f99e9bcf5a6348b1..12f79a2d95b2b418a32f9f4075670bfaf03fd315 100644
--- a/exec/irc.js
+++ b/exec/irc.js
@@ -6,6 +6,14 @@
 // $Id$
 
 // disable auto-termination.
+var old_auto_terminate=js.auto_terminate;
+
+function restore_auto_terminate()
+{
+	js.auto_terminate=old_auto_terminate;
+}
+
+js.on_exit("restore_auto_terminate");
 js.auto_terminate=false;
 
 const REVISION = "$Revision$".split(' ')[1];
diff --git a/exec/termtest.js b/exec/termtest.js
index d3b88618bff1ca99ea98ffbd055f44dec7fb17ea..ca34c70dee81ffe0444559eb76aad024d43778e2 100644
--- a/exec/termtest.js
+++ b/exec/termtest.js
@@ -514,12 +514,36 @@ function test_ctrl_seqs(results)
 		/* No intermediate bytes */
 		"ICH":{
 			char:"@",
+			test:function(results) {
+				if(results.ctrl.BS) {
+					console.writeln("InsertCharTest\b\b\b\b\033[@\b\b\b\b\033[@");
+					return(console.yesno('Are there spaces in "Insert Char Test"'));
+				}
+				return(null);
+			},
 		},
 		"CUU":{
 			char:"A",
+			test:function(results) {
+				console.writeln(" Line 1");
+				console.crlf();
+				console.writeln(" \033[ALine 2");
+				console.crlf();
+				console.crlf();
+				console.writeln(" \033[2ALine 3");
+				console.writeln(" Line 4");
+				return(console.yesno('Does "Line 1" to "Line 4" line up with no gaps'));
+			}
 		},
 		"CUD":{
 			char:"B",
+			test:function(results) {
+				if(results.ctrl_seqs.CUU) {
+				}
+				else if(results.ctrl.FF) {
+				}
+				return(null);
+			}
 		},
 		"CUF":{
 			char:"C",
diff --git a/exec/typehtml.js b/exec/typehtml.js
index 3fecf3923637d23f9cbd3633fd79c57006322017..5fc0ca6ab7e2a456989554c20bdcc3ebda5fd8a6 100644
--- a/exec/typehtml.js
+++ b/exec/typehtml.js
@@ -8,22 +8,23 @@
 
 load("sbbsdefs.js");	// USER_HTML
 
-var NORMAL			="\1N\1H"
-var HEADING1		="\1H\1Y"
-var HEADING2		="\1H\1C"
-var HEADING3		="\1H\1M"
-var HEADING4		="\1H\1G"
-var HEADING5		="\1H\1B"	
-var HEADING6		="\1H\1R"
-var BOLD			="\1H\1C\x014"
-var ITALIC			="\1H\1G\x012"
-var UNDERLINE		="\1H\1W\x016"
-var STRIKE_THROUGH	="\1N\1K\x017"
-var LIST_ITEM 		="\1N\r\n    \1H\1Wo \1G"
+var NORMAL			="\1N\1H";
+var HEADING1		="\1H\1Y";
+var HEADING2		="\1H\1C";
+var HEADING3		="\1H\1M";
+var HEADING4		="\1H\1G";
+var HEADING5		="\1H\1B";
+var HEADING6		="\1H\1R";
+var BOLD			="\1H\1C\x014";
+var ITALIC			="\1H\1G\x012";
+var UNDERLINE		="\1H\1W\x016";
+var STRIKE_THROUGH	="\1N\1K\x017";
+var LIST_ITEM 		="\1N\r\n    \1H\1Wo \1G";
 
 var f;
 var mono=true;
 var i;
+var buf;
 
 for(i in argv) {
 	switch(argv[i].toLowerCase()) {
diff --git a/exec/xjs_handler.js b/exec/xjs_handler.js
index e790d324c3ad0357882a8b630b9316e72b4ba9ab..97e2960ccbca529078e70aac456bbe112102ed15 100644
--- a/exec/xjs_handler.js
+++ b/exec/xjs_handler.js
@@ -4,15 +4,13 @@
 
 var xjs_filename;
 
-if(this.http_request!=undefined)	/* Requested through web-server */
+if(this.http_request!==undefined)	/* Requested through web-server */
 	xjs_filename = http_request.real_path;
 else
 	xjs_filename = argv[0];
 
 var cwd='';
 
-xjs_load(xjs_filename);
-
 function xjs_compile(filename) {
 	if(cwd != '') {
 		if(filename.search(/^((\/)|([A-Za-z]:[\/\\]))/)==-1)
@@ -111,3 +109,6 @@ function xjs_load(filename)
 	load(xjs_compile(filename));
 	cwd=old_cwd;
 }
+
+xjs_load(xjs_filename);
+