server: Don't cache sockets until they are pollable.
diff --git a/server/sock.c b/server/sock.c
index 02f4a6d..7e1cd7e 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -248,6 +248,7 @@
         if (!(sock->state & ~FD_WINE_NONBLOCKING)) return 0;
         /* ok, it is, attach it to the wineserver's main poll loop */
         sock->polling = 1;
+        allow_fd_caching( sock->fd );
     }
     /* update condition mask */
     set_fd_events( sock->fd, ev );
@@ -646,7 +647,6 @@
         release_object( sock );
         return NULL;
     }
-    allow_fd_caching( sock->fd );
     sock_reselect( sock );
     clear_error();
     return &sock->obj;
@@ -719,7 +719,6 @@
             release_object( sock );
             return NULL;
         }
-        allow_fd_caching( acceptsock->fd );
     }
     clear_error();
     sock->pmask &= ~FD_ACCEPT;