fix <!--#include virtual=... wait="yes" -->
r766 did not fix the bug too
diff --git a/src/http/modules/ngx_http_ssi_filter_module.c b/src/http/modules/ngx_http_ssi_filter_module.c
index 5e7bc1e..21bd819 100644
--- a/src/http/modules/ngx_http_ssi_filter_module.c
+++ b/src/http/modules/ngx_http_ssi_filter_module.c
@@ -383,6 +383,7 @@
     ngx_chain_t               *cl, **ll;
     ngx_table_elt_t           *param;
     ngx_connection_t          *c;
+    ngx_http_request_t        *pr;
     ngx_http_ssi_ctx_t        *ctx, *mctx;
     ngx_http_ssi_block_t      *bl;
     ngx_http_ssi_param_t      *prm;
@@ -411,16 +412,34 @@
     }
 
     if (ctx->wait) {
-        if (ctx->wait != r) {
+        if (r->connection->data != r) {
             ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                            "http ssi filter \"%V\" wait", &r->uri);
             return NGX_AGAIN;
         }
 
-        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
-                       "http ssi filter \"%V\" continue", &r->uri);
+        for (pr = ctx->wait->parent; pr; pr = pr->parent) {
+            if (pr == r) {
+                ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                               "http ssi filter \"%V\" flush", &r->uri);
 
-        ctx->wait = NULL;
+                rc = ngx_http_next_body_filter(r, NULL);
+
+                if (ctx->wait->done) {
+                    ctx->wait = NULL;
+                }
+
+                if (rc == NGX_ERROR || rc == NGX_AGAIN) {
+                    return rc;
+                }
+            }
+        }
+
+        if (ctx->wait == r) {
+            ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+                           "http ssi filter \"%V\" continue", &r->uri);
+            ctx->wait = NULL;
+        }
     }
 
     slcf = ngx_http_get_module_loc_conf(r, ngx_http_ssi_filter_module);