diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index f26dd6fed7cf29e5cf061b3768d360da98e8d7cc..20565d3fdc716ad290b4d06af8cd7f29cb538dc7 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -428,8 +428,10 @@ static int writebuf(http_session_t	*session, const char *buf, size_t len)
 
 	while(!terminate_server && sent < len) {
 		avail=RingBufFree(&session->outbuf);
-		if(!avail)
+		if(!avail) {
 			SLEEP(1);
+			continue;
+		}
 		if(avail > len-sent)
 			avail=len-sent;
 		sent+=RingBufWrite(&(session->outbuf), ((char *)buf)+sent, avail);