diff --git a/ares/ares_parse_txt_reply.c b/ares/ares_parse_txt_reply.c
index 6b0a78735faaa6cddaa39610107805d745aa267d..6a83b07094f15a32d01c25edf689bbf52156012c 100644
--- a/ares/ares_parse_txt_reply.c
+++ b/ares/ares_parse_txt_reply.c
@@ -19,21 +19,34 @@
 
 #include "setup.h"
 
-#if defined(WIN32) && !defined(WATT32)
-#include "nameser.h"
+#ifdef HAVE_SYS_SOCKET_H
+#  include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#  include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+#  include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#  include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+#  include <arpa/nameser.h>
 #else
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <arpa/nameser.h>
+#  include "nameser.h"
+#endif
 #ifdef HAVE_ARPA_NAMESER_COMPAT_H
-#include <arpa/nameser_compat.h>
+#  include <arpa/nameser_compat.h>
 #endif
+
+#ifdef HAVE_STRINGS_H
+#  include <strings.h>
 #endif
 
 #include <stdlib.h>
 #include <string.h>
+
 #include "ares.h"
 #include "ares_dns.h"
 #include "ares_private.h"
@@ -168,9 +181,9 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen,
       rr_name = NULL;
     }
 
-  if (hostname);
+  if (hostname)
     free (hostname);
-  if (rr_name);
+  if (rr_name)
     free (rr_name);
 
   /* clean up on error */