--- a/cpan/Socket/Socket.xs
+++ b/cpan/Socket/Socket.xs
@@ -98,6 +98,7 @@
 
 #endif
 
+#ifndef __MINGW64_VERSION_MAJOR
 static int inet_pton(int af, const char *src, void *dst)
 {
   struct sockaddr_storage ss;
@@ -145,6 +146,7 @@
   else
     return dst;
 }
+#endif /* __MINGW64_VERSION_MAJOR */
 
 #define HAS_INETPTON
 #define HAS_INETNTOP
--- a/dist/IO/poll.h
+++ b/dist/IO/poll.h
@@ -11,7 +11,11 @@
 #  define POLL_H
 
 #if (defined(HAS_POLL) && defined(I_POLL)) || defined(POLLWRBAND)
-#  include <poll.h>
+#  ifdef _WIN32
+#    include <winsock.h>
+#  else
+#    include <poll.h>
+#  endif
 #elif (defined(HAS_POLL) && defined(I_SYS_POLL))
 #  include <sys/poll.h>
 #else
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -1942,11 +1958,11 @@
 #define	HAS_SOCKET		/**/
 /*#define	HAS_SOCKETPAIR	/ **/
 /*#define	HAS_SOCKADDR_SA_LEN	/ **/
-/*#define	HAS_SOCKADDR_IN6	/ **/
+#define	HAS_SOCKADDR_IN6	/ **/
 #define	HAS_SIN6_SCOPE_ID	/**/
-/*#define	HAS_IP_MREQ	/ **/
-/*#define	HAS_IP_MREQ_SOURCE	/ **/
-/*#define	HAS_IPV6_MREQ	/ **/
+#define	HAS_IP_MREQ	/ **/
+#define	HAS_IP_MREQ_SOURCE	/ **/
+#define	HAS_IPV6_MREQ	/ **/
 /*#define	HAS_IPV6_MREQ_SOURCE	/ **/
 
 /* USE_STAT_BLOCKS:
@@ -2752,13 +2768,13 @@
  *	This symbol, if defined, indicates that the inet_ntop() function
  *	is available to parse IPv4 and IPv6 strings.
  */
-/*#define HAS_INETNTOP		/ **/
+#define HAS_INETNTOP		/ **/
 
 /* HAS_INETPTON:
  *	This symbol, if defined, indicates that the inet_pton() function
  *	is available to parse IPv4 and IPv6 strings.
  */
-/*#define HAS_INETPTON		/ **/
+#define HAS_INETPTON		/ **/
 
 /* HAS_INT64_T:
  *     This symbol will defined if the C compiler supports int64_t.
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -304,12 +304,12 @@
 d_inc_version_list='undef'
 d_index='undef'
 d_inetaton='undef'
-d_inetntop='undef'
-d_inetpton='undef'
+d_inetntop='define'
+d_inetpton='define'
 d_int64_t='undef'
-d_ip_mreq='undef'
-d_ip_mreq_source='undef'
-d_ipv6_mreq='undef'
+d_ip_mreq='define'
+d_ip_mreq_source='define'
+d_ipv6_mreq='define'
 d_ipv6_mreq_source='undef'
 d_isascii='define'
 d_isblank='undef'
@@ -525,7 +525,7 @@
 d_sin6_scope_id='define'
 d_sitearch='define'
 d_snprintf='define'
-d_sockaddr_in6='undef'
+d_sockaddr_in6='define'
 d_sockaddr_sa_len='undef'
 d_sockaddr_storage='define'
 d_sockatmark='undef'
