nginx-0.0.1-2003-04-23-18:34:42 import
diff --git a/src/http/modules/proxy/ngx_http_event_proxy_handler.c b/src/http/modules/proxy/ngx_http_event_proxy_handler.c
index 26277b4..ab90aeb 100644
--- a/src/http/modules/proxy/ngx_http_event_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_event_proxy_handler.c
@@ -371,8 +371,7 @@
             return NGX_DONE;
         }
 
-        if (p->tries        /* STUB !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
-
+        if (p->tries > 1
             && (rc == NGX_HTTP_BAD_GATEWAY
                 || rc == NGX_HTTP_GATEWAY_TIME_OUT
                 || (rc == NGX_OK
@@ -1083,7 +1082,12 @@
     int  rc;
 
     rc = ngx_event_proxy_read_upstream(p->event_proxy);
-    if (rc == NGX_OK) {
+
+    if (p->event_proxy->fatal_error) {
+        return NGX_HTTP_INTERNAL_SERVER_ERROR;
+    }
+
+    if (p->event_proxy->upstream_eof && p->event_proxy->upstream_error) {
         rc = ngx_event_close_connection(p->connection->read);
     }