--- libev/ev_epoll.c 2008/10/29 07:09:37 1.40 +++ libev/ev_epoll.c 2008/10/29 07:10:16 1.41 @@ -80,7 +80,7 @@ anfds [fd].emask = nev; /* store the generation counter in the upper 32 bits */ - ev.data.u64 = fd | ((uint64_t)(uint32_t)++anfds [fd].egen << 32); + ev.data.u64 = (uint64_t)(uint32_t)fd | ((uint64_t)(uint32_t)++anfds [fd].egen << 32); ev.events = (nev & EV_READ ? EPOLLIN : 0) | (nev & EV_WRITE ? EPOLLOUT : 0);