diff --git a/exec/loadfont.js b/exec/loadfont.js
index 3d4b7234b7d75cdfa421186fd740525669a904a9..c43de0ce6530d1e3b5caf40fb3a67f4a6e645c47 100644
--- a/exec/loadfont.js
+++ b/exec/loadfont.js
@@ -9,6 +9,7 @@
 
 load("sbbsdefs.js");
 loadfont();
+var CTerm_Version;
 
 function loadfont()
 {
@@ -66,7 +67,7 @@ function loadfont()
 
 	// Check if it's CTerm and supports font loading...
 	var ver=new Array(0,0);
-	if(console.terminal.substr(0,6) != 'CTerm;') {
+	if(CTerm_Version == undefined) {
 		// Disable parsed input... we need to do ESC processing ourselves here.
 		var oldctrl=console.ctrlkey_passthru;
 		console.ctrlkey_passthru=-1;
@@ -87,12 +88,14 @@ function loadfont()
 		// alert("Response: "+printable);
 
 		if(response.substr(0,21) != "\x1b[=67;84;101;114;109;") {	// Not CTerm
+			CTerm_Version=0;
 			console.ctrlkey_passthru=oldctrl;
 			if(showprogress)
 				writeln("Not detected.");
 			return(0);
 		}
 		if(response.substr(-1) != "c") {	// Not a DA
+			CTerm_Version=0;
 			console.ctrlkey_passthru=oldctrl;
 			if(showprogress)
 				writeln("Not detected.");
@@ -100,12 +103,13 @@ function loadfont()
 		}
 		var version=response.substr(21);
 		version=version.replace(/c/,"");
+		CTerm_Version=version;
 		ver=version.split(/;/);
 		console.terminal="CTerm;"+ver.join(";");
 		console.ctrlkey_passthru=oldctrl;
 	}
 	else {
-		ver=console.terminal.substr(6).split(/;/);
+		ver=CTerm_Version.split(/;/);
 		if(parseInt(ver[0]) < 1 || (parseInt(ver[0])==1 && parseInt(ver[1]) < 61)) {
 			// Too old for dynamic fonts
 			if(showprogress)
diff --git a/exec/pickfont.js b/exec/pickfont.js
index 2457953e3f87e7a2ef12ee4113edc2cba4030003..b3c6373d64a23c5ba0f0a3306dce80dac1f2a200 100644
--- a/exec/pickfont.js
+++ b/exec/pickfont.js
@@ -3,6 +3,7 @@
 // If nothing passed, changes to font 0 (CP437)
 
 pickfont();
+var CTerm_Version;
 
 function pickfont()
 {
@@ -20,7 +21,7 @@ function pickfont()
 
 	// Check if it's CTerm and supports font loading...
 	var ver=new Array(0,0);
-	if(console.terminal.substr(0,6) != 'CTerm;') {
+	if(CTerm_Version==undefined) {
 		if(detect) {
 			// Disable parsed input... we need to do ESC processing ourselves here.
 			var oldctrl=console.ctrlkey_passthru;
@@ -42,22 +43,25 @@ function pickfont()
 			// alert("Response: "+printable);
 
 			if(response.substr(0,21) != "\x1b[=67;84;101;114;109;") {	// Not CTerm
+				CTerm_Version=0;
 				console.ctrlkey_passthru=oldctrl;
 				return(0);
 			}
 			if(response.substr(-1) != "c") {	// Not a DA
+				CTerm_Version=0;
 				console.ctrlkey_passthru=oldctrl;
 				return(0);
 			}
 			var version=response.substr(21);
 			version=version.replace(/c/,"");
+			CTerm_Version=version;
 			ver=version.split(/;/);
 			console.terminal="CTerm;"+ver.join(";");
 			console.ctrlkey_passthru=oldctrl;
 		}
 	}
 	else {
-		ver=console.terminal.substr(6).split(/;/);
+		ver=CTerm_Version.split(/;/);
 		if(parseInt(ver[0]) < 1 || (parseInt(ver[0])==1 && parseInt(ver[1]) < 61)) {
 			// Too old for dynamic fonts
 			return(0);