nginx-0.0.1-2003-10-17-00:19:16 import
diff --git a/src/os/unix/ngx_recv.c b/src/os/unix/ngx_recv.c
index cef4328..e61cc33 100644
--- a/src/os/unix/ngx_recv.c
+++ b/src/os/unix/ngx_recv.c
@@ -22,8 +22,8 @@
 
         if (rev->available == 0) {
             if (rev->eof) {
+                rev->ready = 0;
                 if (rev->error) {
-                    rev->ready = 0;
                     ngx_set_socket_errno(rev->error);
                     return ngx_unix_recv_error(rev, rev->error);
                 }
@@ -44,7 +44,10 @@
             if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) {
                 rev->available -= n;
                 if (rev->available <= 0) {
-                    rev->ready = 0;
+                    if (!rev->eof) {
+                        rev->ready = 0;
+                    }
+
                     if (rev->available < 0) {
                         rev->available = 0;
                     }