--- otp_src_R11B-2/erts/emulator/sys/unix/erl_poll.c	2006-11-06 14:57:46.000000000 +0100
+++ otp_src_R11B-2_kernel-poll-patch/erts/emulator/sys/unix/erl_poll.c	2006-12-09 12:08:15.000000000 +0100
@@ -1013,12 +1013,13 @@
 	    if (!*update_fallback) {
 		*update_fallback = 1;
 		return 0;
 	    }
 #endif
-	    res = update_fallback_pollset(ps, fd);
 	    ASSERT(!(ps->fds_status[fd].flags & ERTS_POLL_FD_FLG_INFLBCK));
+	    res = update_fallback_pollset(ps, fd);
+	    ASSERT(ps->fds_status[fd].flags & ERTS_POLL_FD_FLG_INFLBCK);
 	    break;
 	}
 	case EPOLL_CTL_DEL: {
 	    /*
 	     * Since we use a lazy update approach EPOLL_CTL_DEL will
@@ -1076,10 +1077,14 @@
 #endif
 
     if (!need_update(ps, fd))
 	return 0;
 
+#if ERTS_POLL_USE_FALLBACK
+    ps->fds_status[fd].flags &= ~ERTS_POLL_FD_FLG_RST;
+#endif
+
 #if ERTS_POLL_USE_POLL	/* --- poll -------------------------------- */
     if (!ps->fds_status[fd].events) {
 	int pix = ps->fds_status[fd].pix;
 	int last_pix;
 	if (pix < 0) {

