diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c
index d51fb8a57207f7a0e8f6a1111928e426f4444025..3625d62f6187f61502071fcdddc4630552838031 100644
--- a/src/sbbs3/sexyz.c
+++ b/src/sbbs3/sexyz.c
@@ -345,15 +345,12 @@ void send_telnet_cmd(SOCKET sock, uchar cmd, uchar opt)
 int recv_byte(void* unused, unsigned timeout)
 {
 	int			i;
-	long		t;
 	uchar		ch;
 	fd_set		socket_set;
-	time_t		end;
 	struct timeval	tv;
 	static uchar	telnet_cmd;
 	static int		telnet_cmdlen;
 
-	end=msclock()+(timeout*MSCLOCKS_PER_SEC);
 	while(!terminate) {
 
 		FD_ZERO(&socket_set);
@@ -363,9 +360,8 @@ int recv_byte(void* unused, unsigned timeout)
 		else
 #endif
 			FD_SET(sock,&socket_set);
-		if((t=end-msclock())<0) t=0;
-		tv.tv_sec=t/((unsigned)MSCLOCKS_PER_SEC);
-		tv.tv_usec=(t%((unsigned)MSCLOCKS_PER_SEC))*1000;
+		tv.tv_sec=timeout;
+		tv.tv_usec=0;
 
 		if((i=select(sock+1,&socket_set,NULL,NULL,&tv))<1) {
 			if(i==SOCKET_ERROR) {