diff --git a/mongoose.c b/mongoose.c
index a1a768409fbf282b860683069d053e3bf53c3020..e5ae42a3b70011bdd5badfe81debdd94119179c8 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4931,6 +4931,9 @@ static void mg_ev_handler(struct ns_connection *nc, enum ns_event ev, void *p) {
 
     case NS_POLL:
       if (call_user(conn, MG_POLL) == MG_TRUE) {
+        if (conn->ns_conn->flags & MG_HEADERS_SENT) {
+          write_terminating_chunk(conn);
+        }
         close_local_endpoint(conn);
       }