--- poll/unix/port.c.orig       2009-08-21 08:16:52.140947520 -0400
+++ poll/unix/port.c    2009-08-21 08:18:58.662675195 -0400
@@ -325,6 +325,11 @@
    apr_atomic_dec32(&pollset->waiting);
    (*num) = nget;

+    if (ret == -1 && nget &&
+        (errno == ETIME || errno == EINTR)) {
+        ret = 0;
+    }
+
    if (ret == -1) {
        (*num) = 0;
        if (errno == EINTR) {
@@ -490,6 +495,11 @@
    ret = port_getn(pollcb->port_fd, pollcb->port_set, pollcb->nalloc,
                    &nget, tvptr);

+    if (ret == -1 && nget &&
+        (errno == ETIME || errno == EINTR)) {
+        ret = 0;
+    }
+
    if (ret == -1) {
        if (errno == ETIME || errno == EINTR) {
            rv = APR_TIMEUP;