diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c
index 0e00a92b0d3af5ea98802c368a69dfd102dc2e1d..3822211b878a798f15241b6f382a258d2829467a 100644
--- a/src/xpdev/sockwrap.c
+++ b/src/xpdev/sockwrap.c
@@ -524,7 +524,7 @@ DLLEXPORT char* socket_strerror(int error_number, char* buf, size_t buflen)
 #endif
 }
 
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(_MSVC_VER)
 DLLEXPORT int inet_pton(int af, const char *src, void *dst)
 {
 	struct addrinfo hints = {0};
diff --git a/src/xpdev/sockwrap.h b/src/xpdev/sockwrap.h
index a5d4173b03676b7d5de861ab98f2ae5915423709..920b45ec9b7d309295c2f02280f3c653c0c7df23 100644
--- a/src/xpdev/sockwrap.h
+++ b/src/xpdev/sockwrap.h
@@ -241,7 +241,7 @@ DLLEXPORT void inet_setaddrport(union xp_sockaddr *addr, uint16_t port);
 DLLEXPORT BOOL inet_addrmatch(union xp_sockaddr* addr1, union xp_sockaddr* addr2);
 DLLEXPORT char* socket_strerror(int, char*, size_t);
 
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(_MSVC_VER)
 DLLEXPORT int inet_pton(int af, const char *src, void *dst);
 #endif