diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 1f632d2dc26f7a76ec176846b850bb9d96c2eb07..2384a1bbf4cc19faa561cdc815ea96257be472af 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -378,8 +378,7 @@ static int sockprint(SOCKET sock, const char *str)
 	int len;
 	int	result;
 	int written=0;
-	fd_set	socket_set;
-	struct timeval tv;
+	BOOL	wr;
 
 	if(sock==INVALID_SOCKET)
 		return(0);
@@ -387,44 +386,9 @@ static int sockprint(SOCKET sock, const char *str)
 		lprintf("%04d TX: %s", sock, str);
 	len=strlen(str);
 
-	/* Check socket for writability (using select) */
-	tv.tv_sec=60;
-	tv.tv_usec=0;
-
-	FD_ZERO(&socket_set);
-	FD_SET(sock,&socket_set);
-
-	if((result=select(sock+1,NULL,&socket_set,NULL,&tv))<1) {
-		if(result==0)
-			lprintf("%04d !TIMEOUT selecting socket for send"
-				,sock);
-		else
-			lprintf("%04d !ERROR %d selecting socket for send"
-				,sock, ERROR_VALUE);
-		return(0);
-	}
-
-	while((result=sendsocket(sock,str+written,len-written))>0)  {
+	while(socket_check(sock,NULL,&wr,60000) && wr)  {
+		result=sendsocket(sock,str+written,len-written);
 		if(result==SOCKET_ERROR) {
-			if(ERROR_VALUE==EWOULDBLOCK) {
-				/* Check socket for writability (using select) */
-				tv.tv_sec=60;
-				tv.tv_usec=0;
-
-				FD_ZERO(&socket_set);
-				FD_SET(sock,&socket_set);
-
-				if((result=select(sock+1,NULL,&socket_set,NULL,&tv))<1) {
-					if(result==0)
-						lprintf("%04d !TIMEOUT selecting socket for send"
-							,sock);
-					else
-						lprintf("%04d !ERROR %d selecting socket for send"
-							,sock, ERROR_VALUE);
-					return(0);
-				}
-				continue;
-			}
 			if(ERROR_VALUE==ECONNRESET) 
 				lprintf("%04d Connection reset by peer on send",sock);
 			else if(ERROR_VALUE==ECONNABORTED) 
@@ -433,7 +397,6 @@ static int sockprint(SOCKET sock, const char *str)
 				lprintf("%04d !ERROR %d sending on socket",sock,ERROR_VALUE);
 			return(0);
 		}
-		lprintf("%04d !ERROR: short send on socket: %d instead of %d",sock,result,len);
 		written+=result;
 	}
 	if(written != len) {