diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp
index f738a2f5a181e1b4ec5d1c292e7cf5711980018b..14e3b2efacca5d48444898c8d90f162bf85773d4 100644
--- a/src/sbbs3/con_out.cpp
+++ b/src/sbbs3/con_out.cpp
@@ -391,8 +391,13 @@ int sbbs_t::rputs(const char *str, size_t len)
 			if((char)ch == (char)TELNET_IAC && !(telnet_mode&TELNET_MODE_OFF))
 				outcom(TELNET_IAC);	/* Must escape Telnet IAC char (255) */
 		}
-		if(lbuflen<LINE_BUFSIZE)
+		if(ch == '\n')
+			lbuflen=0;
+		else if(lbuflen<LINE_BUFSIZE) {
+			if(lbuflen == 0)
+				latr = curatr;
 			lbuf[lbuflen++] = ch;
+		}
 	}
 	return(l);
 }