fix the previous commit
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index c5abb7b..2398d51 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -801,15 +801,13 @@
 {
     ngx_uint_t  level;
 
+    /* Winsock may return NGX_ECONNABORTED instead of NGX_ECONNRESET */
+
+    if ((err == NGX_ECONNRESET
 #if (NGX_WIN32)
-
-    /* Winsock returns NGX_ECONNABORTED instead of NGX_ECONNRESET */
-
-    if (err == NGX_ECONNABORTED
-#else
-    if (err == NGX_ECONNRESET
+         || err == NGX_ECONNABORTED
 #endif
-        && c->log_error == NGX_ERROR_IGNORE_ECONNRESET)
+        ) && c->log_error == NGX_ERROR_IGNORE_ECONNRESET)
     {
         return 0;
     }
diff --git a/src/os/win32/ngx_wsarecv.c b/src/os/win32/ngx_wsarecv.c
index 908d1f3..19c60cc 100644
--- a/src/os/win32/ngx_wsarecv.c
+++ b/src/os/win32/ngx_wsarecv.c
@@ -16,6 +16,7 @@
     u_long        bytes, flags;
     WSABUF        wsabuf[1];
     ngx_err_t     err;
+    ngx_uint_t    n;
     ngx_event_t  *rev;
 
     wsabuf[0].buf = (char *) buf;
@@ -40,10 +41,13 @@
             return NGX_AGAIN;
         }
 
-        rev->error = 1;
-        ngx_connection_error(c, err, "WSARecv() failed");
+        n = ngx_connection_error(c, err, "WSARecv() failed");
 
-        return NGX_ERROR;
+        if (n == NGX_ERROR){
+            rev->error = 1;
+        }
+
+        return n;
     }
 
     if (bytes < size) {
@@ -65,6 +69,7 @@
     u_long            bytes, flags;
     WSABUF            wsabuf[1];
     ngx_err_t         err;
+    ngx_uint_t        n;
     ngx_event_t      *rev;
     LPWSAOVERLAPPED   ovlp;
 
@@ -131,9 +136,13 @@
             return NGX_AGAIN;
         }
 
-        rev->error = 1;
-        ngx_connection_error(c, err, "WSARecv() failed");
-        return NGX_ERROR;
+        n = ngx_connection_error(c, err, "WSARecv() failed");
+
+        if (n == NGX_ERROR){
+            rev->error = 1;
+        }
+
+        return n;
     }
 
     if (ngx_event_flags & NGX_USE_IOCP_EVENT) {