diff --git a/ares/ares.h b/ares/ares.h
index c1b10d061f97a6d794122902f687c9a0afc4cf7a..7ff256c8fe0fcb0770f9f9e876a5933de79a2436 100644
--- a/ares/ares.h
+++ b/ares/ares.h
@@ -122,7 +122,7 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
 		       struct hostent **host);
 int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
 			 int addrlen, int family, struct hostent **host);
-void ares_free_string(char *str);
+void ares_free_string(void *str);
 void ares_free_hostent(struct hostent *host);
 const char *ares_strerror(int code);
 void ares_free_errmem(char *mem);
diff --git a/ares/ares_free_string.c b/ares/ares_free_string.c
index c05069cca544fdb666ae9d0eda3b4660da674066..3b01c9e611e486c0a9837f902cf0bb738ee9eb02 100644
--- a/ares/ares_free_string.c
+++ b/ares/ares_free_string.c
@@ -16,7 +16,7 @@
 #include <stdlib.h>
 #include "ares.h"
 
-void ares_free_string(char *str)
+void ares_free_string(void *str)
 {
   free(str);
 }