Index: poll/unix/pollcb.c
===================================================================
--- poll/unix/pollcb.c	(revision 829476)
+++ poll/unix/pollcb.c	(working copy)
@@ -103,22 +103,25 @@
 
     rv = (*provider->create)(*pollcb, size, p, flags);
     if (rv == APR_ENOTIMPL) {
-        *pollcb = NULL;
         if (method == pollset_default_method) {
+            *pollcb = NULL;
             return rv;
         }
 
         if ((flags & APR_POLLSET_NODEFAULT) == APR_POLLSET_NODEFAULT) {
+            *pollcb = NULL;
             return rv;
         }
 
         /* Try with default provider */
         provider = pollcb_provider(pollset_default_method);
         if (!provider) {
+            *pollcb = NULL;
             return APR_ENOTIMPL;
         }
         rv = (*provider->create)(*pollcb, size, p, flags);
         if (rv != APR_SUCCESS) {
+            *pollcb = NULL;
             return rv;
         }
         (*pollcb)->provider = provider;
