diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp
index 224535fc0d7bb22ced15ac083d440a40ec8b5c46..18ea78efc707d0131645d557935a0653f6ed8ba0 100644
--- a/src/sbbs3/answer.cpp
+++ b/src/sbbs3/answer.cpp
@@ -76,14 +76,14 @@ bool sbbs_t::answer()
 	rlogin_name[0]=0;
 	if(sys_status&SS_RLOGIN) {
 		if(incom(1000)==0) {
-			for(i=0;i<LEN_ALIAS;i++) {
+			for(i=0;i<(int)sizeof(str)-1;i++) {
 				in=incom(1000);
 				if(in==0 || in==NOINP)
 					break;
 				str[i]=in;
 			}
 			str[i]=0;
-			for(i=0;i<LEN_ALIAS;i++) {
+			for(i=0;i<(int)sizeof(str2)-1;i++) {
 				in=incom(1000);
 				if(in==0 || in==NOINP)
 					break;
@@ -98,18 +98,26 @@ bool sbbs_t::answer()
 			}
 			terminal[i]=0;
 			truncstr(terminal,"/");
-			lprintf(LOG_DEBUG,"Node %d RLogin: '%s' / '%s / %s'",cfg.node_num,str,str2,terminal);
+			lprintf(LOG_DEBUG,"Node %d RLogin: '%.*s' / '%.*s' / '%s'"
+				,cfg.node_num
+				,LEN_ALIAS*2,str
+				,LEN_ALIAS*2,str2
+				,terminal);
 			SAFECOPY(rlogin_name
 				,startup->options&BBS_OPT_USE_2ND_RLOGIN ? str2 : str);
 			useron.number=userdatdupe(0, U_ALIAS, LEN_ALIAS, rlogin_name, 0);
 			if(useron.number)
 				getuserdat(&cfg,&useron);
+			else
+				lprintf(LOG_DEBUG,"Node %d RLogin: Unknown user: %s",cfg.node_num,rlogin_name);
+		}
+		if(rlogin_name[0]==0) {
+			lprintf(LOG_DEBUG,"!Node %d RLogin: No user name received",cfg.node_num);
+			sys_status&=~SS_RLOGIN;
 		}
 	}
-	if(rlogin_name[0]==0)
-		sys_status&=~SS_RLOGIN;
 
-	if(!(sys_status&SS_RLOGIN)) {
+	if(!(telnet_mode&TELNET_MODE_OFF)) {
 		/* Disable Telnet Terminal Echo */
 		send_telnet_cmd(TELNET_WILL,TELNET_ECHO);
 		/* Will suppress Go Ahead */