diff --git a/CHANGES b/CHANGES
index fad2b8c..b550e11 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,7 @@
 Changes since milestone-03:
 
+* Switch to new apr_poll() API.  [Justin Erenkrantz]
+
 * Stop using the apr_lock.h API and start using apr_thread_mutex.h
   instead.  [Aaron Bannert]
 
diff --git a/flood_net.c b/flood_net.c
index 30d8669..8c10096 100644
--- a/flood_net.c
+++ b/flood_net.c
@@ -103,10 +103,11 @@
     }
 
     apr_setsocketopt(fs->socket, APR_SO_TIMEOUT, LOCAL_SOCKET_TIMEOUT);
-
-    apr_poll_setup(&fs->poll, 1, pool);
-    apr_poll_socket_add(fs->poll, fs->socket, APR_POLLIN);
-
+    fs->read_pollset.desc_type = APR_POLL_SOCKET;
+    fs->read_pollset.desc.s = fs->socket;
+    fs->read_pollset.reqevents = APR_POLLIN;
+    fs->read_pollset.p = pool;
+    
     return fs;
 }
 
@@ -120,9 +121,9 @@
 apr_status_t read_socket(flood_socket_t *s, char *buf, int *buflen)
 {
     apr_status_t e;
-    int socketsRead = 1;
+    apr_int32_t socketsRead;
 
-    e = apr_poll(s->poll, &socketsRead, LOCAL_SOCKET_TIMEOUT);
+    e = apr_poll(&s->read_pollset, 1, &socketsRead, LOCAL_SOCKET_TIMEOUT);
     if (e != APR_SUCCESS)
         return e;
     return apr_recv(s->socket, buf, buflen);
@@ -147,19 +148,18 @@
 apr_status_t check_socket(flood_socket_t *s, apr_pool_t *pool)
 {
     apr_status_t e;
-    int socketsRead = 1;
-    apr_pollfd_t *pout;
+    apr_int32_t socketsRead;
+    apr_pollfd_t pout;
     apr_int16_t event;
 
-    apr_poll_setup(&pout, 1, pool);
-    apr_poll_socket_add(pout, s->socket, APR_POLLIN | APR_POLLPRI | APR_POLLERR | APR_POLLHUP | APR_POLLNVAL);
-
-    e = apr_poll(pout, &socketsRead, 1000);
-    if (socketsRead) {
-        apr_poll_revents_get(&event, s->socket, pout);
-        if (event) {
-            return APR_EGENERAL;
-        }
+    pout.desc_type = APR_POLL_SOCKET;
+    pout.desc.s = s->socket;
+    pout.reqevents = APR_POLLIN | APR_POLLPRI | APR_POLLERR | APR_POLLHUP | APR_POLLNVAL;
+    pout.p = pool;
+    
+    e = apr_poll(&pout, 1, &socketsRead, 1000);
+    if (socketsRead && pout.rtnevents) {
+        return APR_EGENERAL;
     }
     
     return APR_SUCCESS;
diff --git a/flood_net.h b/flood_net.h
index 297d3f8..ae851b0 100644
--- a/flood_net.h
+++ b/flood_net.h
@@ -58,13 +58,14 @@
 #define __flood_socket_h
 
 #include <apr_network_io.h> /* apr_socket_t */
+#include <apr_poll.h>       /* apr_pollfd_t */
 #include <apr_pools.h>      /* apr_pool_t */
 
 #include "flood_profile.h"
 
 typedef struct flood_socket_t {
     apr_socket_t *socket;
-    apr_pollfd_t *poll;
+    apr_pollfd_t read_pollset;
 } flood_socket_t;
 
 flood_socket_t* open_socket(apr_pool_t *pool, request_t *r);
diff --git a/flood_net_ssl.c b/flood_net_ssl.c
index 03979ba..f3c52d8 100644
--- a/flood_net_ssl.c
+++ b/flood_net_ssl.c
@@ -277,12 +277,13 @@
 apr_status_t ssl_read_socket(ssl_socket_t *s, char *buf, int *buflen)
 {
     apr_status_t e;
-    int sslError, socketsRead;
+    int sslError;
+    apr_int32_t socketsRead;
 
     /* Wait until there is something to read. */
     if (SSL_pending(s->ssl_connection) < *buflen) {
-        socketsRead = 1;
-        e = apr_poll(s->socket->poll, &socketsRead, LOCAL_SOCKET_TIMEOUT);
+        e = apr_poll(&s->socket->read_pollset, 1, &socketsRead,
+                     LOCAL_SOCKET_TIMEOUT);
 
         if (socketsRead != 1)
             return APR_TIMEUP;
@@ -319,9 +320,10 @@
     char buf[1];
     int buflen = 1; 
     /* Wait until there is something to read. */
-    int socketsRead = 1;
+    apr_int32_t socketsRead;
     apr_status_t e;
-    e = apr_poll(s->socket->poll, &socketsRead, LOCAL_SOCKET_TIMEOUT);
+    e = apr_poll(&s->socket->read_pollset, 1, &socketsRead,
+                 LOCAL_SOCKET_TIMEOUT);
     e = SSL_read(s->ssl_connection, buf, buflen);
 }
 
