diff --git a/exec/login.js b/exec/login.js
index 3487510a95cd524ce1a398457f8bbc894b4374ae..c5020e313a374dc591bc3dda43f6fa08b1510ae9 100644
--- a/exec/login.js
+++ b/exec/login.js
@@ -61,15 +61,8 @@ for(var c=0; c < options.login_prompts; c++) {
 	   }
 	   continue;
 	}
-	var fast_logon = false;
-	if(str.charAt(0) === (options.fast_logon_char || '!')) {
-		str = str.substr(1);
-		fast_logon = true;
-	}
 	// Continue normal login (prompting for password)
 	if(bbs.login(str, "\1n\1c\1hPW:\b\b\bPassword: \1w")) {
-		if(fast_logon && options.fast_logon == true && user.compare_ars(options.fast_logon_requirements))
-			bbs.fast_logon = true; // logon.js checks this variable to perform a fast-logon
 		bbs.logon();
 		exit();
 	}
diff --git a/exec/logon.js b/exec/logon.js
index 34eb9554b38f3295185dc01f81dd21093470e93b..e968c86d4f101a4c1885dd44a83db3097dbfa18d 100644
--- a/exec/logon.js
+++ b/exec/logon.js
@@ -113,7 +113,8 @@ if(user.security.exemptions&UFLAG_H)
 * Replaces the 2.1 Logon stuff
 ******************************/
 
-if(bbs.fast_logon !== true) {
+if(options.fast_logon !== true || !(bbs.sys_status&SS_FASTLOGON)
+	|| !user.compare_ars(options.fast_logon_requirements)) {
 
 	// Logon screens