diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 3c944fff489aa8c252a8638eee58b86324b673d9..c6f7c184073a37ef3b2042ae3969b93359615f40 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -554,10 +554,15 @@ bool sbbs_t::logon()
 			if(thisnode.status!=NODE_QUIET
 				&& (node.status==NODE_INUSE || node.status==NODE_QUIET)
 				&& !(node.misc&NODE_AOFF) && node.useron!=useron.number) {
-				safe_snprintf(str, sizeof(str), text[NodeLoggedOnAtNbps]
-					,cfg.node_num
-					,thisnode.misc&NODE_ANON ? text[UNKNOWN_USER] : useron.alias
-					,connection);
+				char fmt[256];
+				expand_atcodes(text[NodeLoggedOnAtNbps], fmt, sizeof fmt);
+				if(strcmp(text[NodeLoggedOnAtNbps], fmt) != 0)
+					SAFECOPY(str, fmt);
+				else
+					safe_snprintf(str, sizeof str, fmt
+						,cfg.node_num
+						,thisnode.misc&NODE_ANON ? text[UNKNOWN_USER] : useron.alias
+						,connection);
 				putnmsg(i, str);
 			} 
 		}
diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp
index c3de6296bf0ea6bdbf401d4234a265c159e65689..d7cf3c56f74aa0406929acd919f522fda56dbd29 100644
--- a/src/sbbs3/logout.cpp
+++ b/src/sbbs3/logout.cpp
@@ -66,9 +66,15 @@ void sbbs_t::logout()
 				getnodedat(i,&node,0);
 				if((node.status==NODE_INUSE || node.status==NODE_QUIET)
 					&& !(node.misc&NODE_AOFF) && node.useron!=useron.number) {
-					SAFEPRINTF2(str,text[NodeLoggedOff],cfg.node_num
-						,thisnode.misc&NODE_ANON
-						? text[UNKNOWN_USER] : useron.alias);
+					char fmt[256];
+					expand_atcodes(text[NodeLoggedOff], fmt, sizeof fmt);
+					if(strcmp(text[NodeLoggedOff], fmt) != 0)
+						SAFECOPY(str, fmt);
+					else
+						snprintf(str, sizeof str, fmt
+							,cfg.node_num
+							,thisnode.misc&NODE_ANON
+								? text[UNKNOWN_USER] : useron.alias);
 					putnmsg(i, str);
 				}
 			}