diff --git a/configure b/configure
index 1ee093da8e3939a8e917eaee45b4506daf022280..802e763e931345c667e928b779618066dd2e9ccd 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 204413 .
+# From configure.ac Revision: 204919 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for asterisk 1.6.
 #
@@ -19239,6 +19239,152 @@ echo "${ECHO_T}no" >&6; }
 
 fi
 
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+	{ echo "$as_me:$LINENO: checking for library containing res_9_close" >&5
+echo $ECHO_N "checking for library containing res_9_close... $ECHO_C" >&6; }
+if test "${ac_cv_search_res_9_close+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char res_9_close ();
+int
+main ()
+{
+return res_9_close ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' resolv; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_res_9_close=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_res_9_close+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_res_9_close+set}" = set; then
+  :
+else
+  ac_cv_search_res_9_close=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_res_9_close" >&5
+echo "${ECHO_T}$ac_cv_search_res_9_close" >&6; }
+ac_res=$ac_cv_search_res_9_close
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+	{ echo "$as_me:$LINENO: checking for res_close" >&5
+echo $ECHO_N "checking for res_close... $ECHO_C" >&6; }
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+				#ifdef HAVE_SYS_SOCKET_H
+				#include <sys/socket.h>
+				#endif
+				#ifdef HAVE_NETINET_IN_H
+				#include <netinet/in.h>
+				#endif
+				#ifdef HAVE_ARPA_NAMESER_H
+				#include <arpa/nameser.h>
+				#endif
+				#include <resolv.h>
+int
+main ()
+{
+res_close();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RES_CLOSE 1
+_ACEOF
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+fi
+
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 else
diff --git a/configure.ac b/configure.ac
index dceec8158cf1fde17c0d41b09e09c00340934ad7..38c43ca27b557404dbacf7b5975570d7fe69307c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -626,6 +626,25 @@ AC_LINK_IFELSE(
 		AC_MSG_RESULT(yes)
 		AC_DEFINE([HAVE_RES_NDESTROY], 1, [Define to 1 if your system has the ndestroy resolver function.]),
 		AC_MSG_RESULT(no)
+	)
+	AC_SEARCH_LIBS(res_9_close, resolv)
+	AC_MSG_CHECKING(for res_close)
+	AC_LINK_IFELSE(
+		AC_LANG_PROGRAM([
+				#ifdef HAVE_SYS_SOCKET_H
+				#include <sys/socket.h>
+				#endif
+				#ifdef HAVE_NETINET_IN_H
+				#include <netinet/in.h>
+				#endif
+				#ifdef HAVE_ARPA_NAMESER_H
+				#include <arpa/nameser.h>
+				#endif
+				#include <resolv.h>],
+				[res_close();]),
+		AC_MSG_RESULT(yes)
+		AC_DEFINE([HAVE_RES_CLOSE], 1, [Define to 1 if your system has the close resolver function.]),
+		AC_MSG_RESULT(no)
 	),
 	AC_MSG_RESULT(no)
 )
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in
index 972f2dd9124003c477faf86372454e7eb4ee3acf..da82278f9c947652463bd4874c309a56ebbf154e 100644
--- a/include/asterisk/autoconfig.h.in
+++ b/include/asterisk/autoconfig.h.in
@@ -785,6 +785,9 @@
 /* Define to indicate the ${RESAMPLE_DESCRIP} library version */
 #undef HAVE_RESAMPLE_VERSION
 
+/* Define to 1 if your system has the close resolver function. */
+#undef HAVE_RES_CLOSE
+
 /* Define to 1 if your system has the ndestroy resolver function. */
 #undef HAVE_RES_NDESTROY
 
diff --git a/main/dns.c b/main/dns.c
index 66c21b3678e49b9f72a353718a3783a1d3ddca7e..159a7a7ab75d9c8e4ba122182fd66f1505d98fe0 100644
--- a/main/dns.c
+++ b/main/dns.c
@@ -288,7 +288,7 @@ int ast_search_dns(void *context,
 	res_nclose(&dnsstate);
 #endif
 #else
-#ifndef __APPLE__
+#ifdef HAVE_RES_CLOSE
 	res_close();
 #endif
 	ast_mutex_unlock(&res_lock);
diff --git a/utils/muted.c b/utils/muted.c
index 4e90da789dcd7dd77c9fe2a18b307bb68aeeb52c..a2e35306b4c32b93293424ac9a4dd802315db60d 100644
--- a/utils/muted.c
+++ b/utils/muted.c
@@ -684,7 +684,7 @@ int main(int argc, char *argv[])
 		fclose(astf);
 		exit(1);
 	}
-#if HAVE_WORKING_FORK
+#ifdef HAVE_WORKING_FORK
 	if (needfork) {
 #ifndef HAVE_SBIN_LAUNCHD
 		if (daemon(0,0) < 0) {