diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index 484f3ee43101f352687b61193699ac88d1493b0a..8a8a6498de16869b8ea8d731649879a2103df282 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -644,7 +644,7 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
 	target = READSINT8(*p);
 	flags = READUINT8(*p);
 	msg = (char *)*p;
-	SKIPSTRING(*p);
+	SKIPSTRINGN(*p, HU_MAXMSGLEN);
 
 	if ((cv_mute.value || flags & (HU_CSAY|HU_SERVER_SAY)) && playernum != serverplayer && !(IsPlayerAdmin(playernum)))
 	{