diff --git a/ares/Makefile.inc b/ares/Makefile.inc
index 6498104c769c9e585feb48eb08b99ae2ea41bf0f..2ebabfeacb97a8e76479a64a1fd90368ccb19a31 100644
--- a/ares/Makefile.inc
+++ b/ares/Makefile.inc
@@ -4,7 +4,7 @@ ares_gethostbyaddr.c ares_send.c ares__read_line.c ares_gethostbyname.c	   \
 ares_strerror.c ares_cancel.c ares_init.c ares_timeout.c ares_destroy.c	   \
 ares_mkquery.c ares_version.c ares_expand_name.c ares_parse_a_reply.c	   \
 windows_port.c ares_expand_string.c ares_parse_ptr_reply.c                 \
-ares_parse_aaaa_reply.c inet_net_pton.c
+ares_parse_aaaa_reply.c inet_net_pton.c inet_net_pton.h
 
 HHEADERS = ares.h ares_private.h setup.h ares_dns.h ares_version.h nameser.h
 
diff --git a/ares/inet_net_pton.c b/ares/inet_net_pton.c
index 2fa110047011e727f79a886890a137a799469bd8..6aeb620a9ee6be89dfaade9b26fc9dea38294fa0 100644
--- a/ares/inet_net_pton.c
+++ b/ares/inet_net_pton.c
@@ -45,6 +45,8 @@
 #include <string.h>
 #include <stdlib.h>
 
+#include "inet_net_pton.h"
+
 #if !defined(HAVE_INET_NET_PTON) || !defined(HAVE_INET_NET_PTON_IPV6) || \
     !defined(HAVE_INET_PTON) || !defined(HAVE_INET_PTON_IPV6)
 
diff --git a/ares/inet_net_pton.h b/ares/inet_net_pton.h
new file mode 100644
index 0000000000000000000000000000000000000000..5e08208146c5630f17f84025dc6230257898a733
--- /dev/null
+++ b/ares/inet_net_pton.h
@@ -0,0 +1,42 @@
+/* $Id$ */
+
+/*
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose.  It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#ifndef INET_NET_PTON_H
+#define INET_NET_PTON_H
+
+#ifndef HAVE_PF_INET6
+#define PF_INET6 AF_INET6
+#endif
+
+#ifndef HAVE_STRUCT_IN6_ADDR
+struct in6_addr
+{
+  unsigned char s6_addr[16];
+};
+#endif
+
+#if defined(HAVE_INET_PTON) && defined(HAVE_INET_PTON_IPV6)
+#define ares_inet_pton(x,y,z) inet_pton(x,y,z)
+#else
+int ares_inet_pton(int af, const char *src, void *dst);
+#endif
+#if defined(HAVE_INET_NET_PTON) && defined(HAVE_INET_NET_PTON_IPV6)
+#define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z)
+#else
+int ares_inet_net_pton(int af, const char *src, void *dst, size_t size);
+#endif
+
+#endif /* INET_NET_PTON_H */
diff --git a/ares/setup.h b/ares/setup.h
index 20e1206b44a4d17a0ff9f0cc796ec129c802f3d3..e972702d55911cffd1b25e036c512b516f26f255 100644
--- a/ares/setup.h
+++ b/ares/setup.h
@@ -78,26 +78,4 @@ int ares_strcasecmp(const char *s1, const char *s2);
 #endif
 #endif
 
-#ifndef HAVE_PF_INET6
-#define PF_INET6 AF_INET6
-#endif
-
-#ifndef HAVE_STRUCT_IN6_ADDR
-struct in6_addr
-{
-  unsigned char s6_addr[16];
-};
-#endif
-
-#if defined(HAVE_INET_PTON) && defined(HAVE_INET_PTON_IPV6)
-#define ares_inet_pton(x,y,z) inet_pton(x,y,z)
-#else
-int ares_inet_pton(int af, const char *src, void *dst);
-#endif
-#if defined(HAVE_INET_NET_PTON) && defined(HAVE_INET_NET_PTON_IPV6)
-#define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z)
-#else
-int ares_inet_net_pton(int af, const char *src, void *dst, size_t size);
-#endif
-
 #endif /* ARES_SETUP_H */