diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c
index a2e2a2cae91ec62917526d09cac732c6c938e720..76c47aad04067232f928c6c7027753200410765b 100644
--- a/src/xpdev/sockwrap.c
+++ b/src/xpdev/sockwrap.c
@@ -569,6 +569,7 @@ int nonblocking_connect(SOCKET sock, struct sockaddr* addr, size_t size, unsigne
 				result = 0;
 			}
 			else {
+				optlen = sizeof(result);
 				if(getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&result, &optlen)==SOCKET_ERROR)
 					result=ERROR_VALUE;
 			}