diff --git configure.ac configure.ac
index 6c2481a..d204ba0 100644
--- configure.ac
+++ configure.ac
@@ -96,6 +96,7 @@ AC_TYPE_UINT8_T
 AC_FUNC_MALLOC
 AC_FUNC_REALLOC
 AC_CHECK_FUNCS([strcasecmp strdup strerror strndup stpcpy])
+AC_CHECK_FUNCS([ppoll])
 
 # Check for operating system
 AC_MSG_CHECKING([whether to enable WIN32 build settings])
diff --git src/main.c src/main.c
index 2e4439c..cfe6acc 100644
--- src/main.c
+++ src/main.c
@@ -159,7 +159,7 @@ static void set_signal_handlers(void)
 	sigaction(SIGUSR2, &sa, NULL);
 }
 
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#ifndef HAVE_PPOLL
 static int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, const sigset_t *sigmask)
 {
 	int ready;
