diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 2384a1bbf4cc19faa561cdc815ea96257be472af..c0c4034175f35b786af36501ccecb54e49868f2d 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -386,7 +386,7 @@ static int sockprint(SOCKET sock, const char *str)
 		lprintf("%04d TX: %s", sock, str);
 	len=strlen(str);
 
-	while(socket_check(sock,NULL,&wr,60000) && wr)  {
+	while(socket_check(sock,NULL,&wr,60000) && wr && written<len)  {
 		result=sendsocket(sock,str+written,len-written);
 		if(result==SOCKET_ERROR) {
 			if(ERROR_VALUE==ECONNRESET)