diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 259c458594ce6aa8b7952f13aa165266ed125d76..9f8ea464df53bad317ccb2f4539f0248f2e39565 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -5581,6 +5581,13 @@ NO_SSH:
 				}
 			}
 
+			// Initialize term state
+			sbbs->autoterm = 0;
+			if (sbbs->term)
+				delete sbbs->term;
+			sbbs->term = new Terminal(sbbs);
+			sbbs->term->cols = startup->default_term_width;
+
 			sbbs->client_socket = client_socket; // required for output to the user
 			if (!ssh)
 				sbbs->online = ON_REMOTE;
@@ -5673,9 +5680,6 @@ NO_SSH:
 			if (rlogin)
 				sbbs->outcom(0); /* acknowledge RLogin per RFC 1282 */
 
-			sbbs->autoterm = 0;
-			sbbs->term->cols = startup->default_term_width;
-
 			sbbs->bprintf("\r\n%s\r\n", VERSION_NOTICE);
 			sbbs->bprintf("%s connection from: %s\r\n", client.protocol, host_ip);