diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 8783f4455f1f27d515f3c62bda2a55f16eed83ef..af92047f7bb0144d19d9fda749430e295658b138 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -180,6 +180,10 @@ bool sbbs_t::logon()
 	if(useron.misc&AUTOTERM) {
 		useron.misc&=~(ANSI|RIP|PETSCII);
 		useron.misc|=autoterm;
+	} else if((useron.misc&PETSCII) && (autoterm&ANSI)) {
+		// User manually-enabled PETSCII, but they're logging in with an ANSI (auto-detected) terminal
+		useron.misc &= ~PETSCII;
+		useron.misc |= (AUTOTERM | autoterm);
 	}
 
 	if(!chk_ar(cfg.shell[useron.shell]->ar,&useron,&client)) {