diff --git a/src/sbbs3/telgate.cpp b/src/sbbs3/telgate.cpp
index d21454124437115abe1041aab3cbe454f41096ab..18e300008f99ed0361d7743742431953fd7e328a 100644
--- a/src/sbbs3/telgate.cpp
+++ b/src/sbbs3/telgate.cpp
@@ -191,7 +191,7 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode, char* client_user_name, cha
 					rd=getstr((char*)buf,sizeof(buf)-1,l);
 					if(!rd)
 						continue;
-					SAFECAT((char*)buf,crlf);
+					SAFECAT(buf,crlf);
 					rd+=2;
 					gotline=true;
 				}
diff --git a/src/xpdev/gen_defs.h b/src/xpdev/gen_defs.h
index b516a8e0fbb1cba2e7e79694657514929b858197..d615693e74707f72d5c6ff54195f3473de2326aa 100644
--- a/src/xpdev/gen_defs.h
+++ b/src/xpdev/gen_defs.h
@@ -427,8 +427,8 @@ typedef struct {
 #endif
 
 #define SAFECAT(dst, src) do { \
-	if(strlen(dst) + strlen(src) < sizeof(dst)) { \
-		strcat(dst, src); \
+	if(strlen((char*)(dst)) + strlen((char*)(src)) < sizeof(dst)) { \
+		strcat((char*)(dst), (char*)(src)); \
 	} \
 } while(0)