diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c
index 31e2949bfd804f9b4eb405f09b1670b4455a4fa6..ed4bb4d8d112817fe2117458651c714ee0642d6d 100644
--- a/src/xpdev/sockwrap.c
+++ b/src/xpdev/sockwrap.c
@@ -196,8 +196,8 @@ off_t sendfilesocket(int sock, int file, off_t *offset, off_t count)
 		for (i = wr = 0; i < rd; i += wr) {
 			wr = sendsocket(sock,buf+i,rd-i);
 			if (wr > 0) {
-				if ((SSIZE_MAX - i) < wr)
-					wr = SSIZE_MAX - i;
+				if ((rd - i) < wr)
+					wr = rd - i;
 				continue;
 			}
 			if (wr == SOCKET_ERROR && SOCKET_ERRNO == EWOULDBLOCK) {