diff --git a/configure b/configure
index 863b79bd5d16593aa54180397b9a763efd3d1f59..a38e6d629bcf04f9a7ab24d163273f540e997d1c 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 89354 .
+# From configure.ac Revision: 89357 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61.
 #
@@ -12403,11 +12403,13 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdio.h>
+#include <sys/types.h> /* for off_t */
+     #include <stdio.h>
 int
 main ()
 {
-return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+int (*fp) (FILE *, off_t, int) = fseeko;
+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
   ;
   return 0;
 }
@@ -12447,11 +12449,13 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #define _LARGEFILE_SOURCE 1
-#include <stdio.h>
+#include <sys/types.h> /* for off_t */
+     #include <stdio.h>
 int
 main ()
 {
-return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+int (*fp) (FILE *, off_t, int) = fseeko;
+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
   ;
   return 0;
 }
@@ -15503,6 +15507,11 @@ echo "${ECHO_T}$ac_cv_header_sys_poll_h" >&6; }
 fi
 if test $ac_cv_header_sys_poll_h = yes; then
   HAS_POLL=1
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYS_POLL_H 1
+_ACEOF
+
 fi
 
 
diff --git a/configure.ac b/configure.ac
index 3a56fbecc54112725b8af6689ab58cb7408a40a8..aa8966802b61551c00c830d90a486b5aa14a2891 100644
--- a/configure.ac
+++ b/configure.ac
@@ -288,7 +288,10 @@ AC_CHECK_FUNCS([asprintf atexit bzero dup2 endpwent ftruncate getcwd gethostbyna
 
 AC_CHECK_FUNCS([glob])
 AC_CHECK_FUNCS([timersub])
-AC_CHECK_HEADER([sys/poll.h], [HAS_POLL=1],)
+AC_CHECK_HEADER([sys/poll.h], 
+   [HAS_POLL=1]
+   AC_DEFINE([HAVE_SYS_POLL_H], 1, [Define to 1 if your system has working sys/poll.h]),
+   )
 AC_SUBST(HAS_POLL)
 
 # https support (in main/http.c) uses funopen on BSD systems,
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in
index b3b5001906e12ca2857560cfd9ccec1c3b11aa59..d07749d0b199ad929cb5f2bdb698879056b9094a 100644
--- a/include/asterisk/autoconfig.h.in
+++ b/include/asterisk/autoconfig.h.in
@@ -840,6 +840,9 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
+/* Define to 1 if your system has working sys/poll.h */
+#undef HAVE_SYS_POLL_H
+
 /* Define to 1 if you have the <sys/select.h> header file. */
 #undef HAVE_SYS_SELECT_H
 
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 4e61668c54fd2d088f1f6bde19c50c006a25e7ff..8a7f2f83f5c4c1fb7e4c0dcc41387544a6c68c00 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -125,7 +125,7 @@ References:
 
 #include "asterisk/abstract_jb.h"
 
-#ifdef HAVE_POLL 
+#ifdef HAVE_SYS_POLL_H
 #include <sys/poll.h>
 #else
 #include "asterisk/poll-compat.h"
diff --git a/include/asterisk/compat.h b/include/asterisk/compat.h
index f70dcea163d00e1ecacbf898dae34656128a6e0e..819ac467593c5f871e33c6b35603828216ddb1cb 100644
--- a/include/asterisk/compat.h
+++ b/include/asterisk/compat.h
@@ -56,6 +56,12 @@
 #include <string.h>
 #endif
 
+#ifdef HAVE_SYS_POLL_H
+#include <sys/poll.h>
+#else
+#include "asterisk/poll-compat.h"
+#endif
+
 #if !defined(HAVE_ASPRINTF) && !defined(__AST_DEBUG_MALLOC)
 int asprintf(char **str, const char *fmt, ...);
 #endif
diff --git a/include/asterisk/io.h b/include/asterisk/io.h
index 247d0de72ab7046c307cf60998d033a0250fae40..6f227dc2c7a68496f9f9dbca57560c8e723283e8 100644
--- a/include/asterisk/io.h
+++ b/include/asterisk/io.h
@@ -23,7 +23,7 @@
 #ifndef _ASTERISK_IO_H
 #define _ASTERISK_IO_H
 
-#ifdef HAVE_POLL
+#ifdef HAVE_SYS_POLL_H
 #include <sys/poll.h>		/* For POLL* constants */
 #else
 #include "asterisk/poll-compat.h"