diff --git a/src/xpdev/multisock.c b/src/xpdev/multisock.c
index 7bcde30651c5d1219b8672ab6f88e3b9a1e0c401..5f0a3e84e03cb4c77850f80455e0e6d7ef950141 100644
--- a/src/xpdev/multisock.c
+++ b/src/xpdev/multisock.c
@@ -206,7 +206,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr,
 	socklen_t * addrlen, unsigned int timeout, void **cb_data)
 {
 	fd_set			read_fs;
-	fd_set			except_fs;
 	int				i;
 	struct timeval	tv;
 	struct timeval	*tvp;
@@ -217,7 +216,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr,
 		if(xpms_set->socks[i].sock == INVALID_SOCKET)
 			continue;
 		FD_SET(xpms_set->socks[i].sock, &read_fs);
-		FD_SET(xpms_set->socks[i].sock, &except_fs);
 		if(xpms_set->socks[i].sock > max_sock)
 			max_sock=xpms_set->socks[i].sock+1;
 	}
@@ -229,7 +227,7 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr,
 		tv.tv_usec=(timeout%1000)*1000;
 		tvp=&tv;
 	}
-	switch(select(max_sock, &read_fs, NULL, &except_fs, tvp)) {
+	switch(select(max_sock, &read_fs, NULL, NULL, tvp)) {
 		case 0:
 			return INVALID_SOCKET;
 		case -1:
@@ -243,10 +241,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr,
 						*cb_data=xpms_set->socks[i].cb_data;
 					return accept(xpms_set->socks[i].sock, &addr->addr, addrlen);
 				}
-				if(FD_ISSET(xpms_set->socks[i].sock, &except_fs)) {
-					closesocket(xpms_set->socks[i].sock);
-					xpms_set->socks[i].sock = INVALID_SOCKET;
-				}
 			}
 	}