--- epoll_reactor.orig.ipp 2012-06-21 18:20:06.000000000 -0400 +++ epoll_reactor.ipp 2012-06-21 18:20:19.000000000 -0400 @@ -440,7 +440,7 @@ int epoll_reactor::do_epoll_create() errno = EINVAL; #endif // defined(EPOLL_CLOEXEC) - if (fd == -1 && errno == EINVAL) + if (fd == -1 && (errno == EINVAL || errno == ENOSYS)) { fd = epoll_create(epoll_size); if (fd != -1)