lib/PublicInbox/HTTPD/Async.pm | 9 ++++++---
diff --git a/lib/PublicInbox/HTTPD/Async.pm b/lib/PublicInbox/HTTPD/Async.pm
index 1651da88ac034cfcc022f8739b7ab25246b09975..cb76cfab4a83317284ed25456ec9dd346ea80db1 100644
--- a/lib/PublicInbox/HTTPD/Async.pm
+++ b/lib/PublicInbox/HTTPD/Async.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2021 all contributors
+# Copyright (C) all contributors
# License: AGPL-3.0+
#
# XXX This is a totally unstable API for public-inbox internal use only
@@ -77,8 +77,11 @@ # In case the client HTTP connection ($http) dies, it
# will automatically close this ($self) object.
$http->{forward} = $self;
- # write anything we overread when we were reading headers
- $fh->write($$bref); # PublicInbox:HTTP::{chunked,identity}_wcb
+ # write anything we overread when we were reading headers.
+ # This is typically PublicInbox:HTTP::{chunked,identity}_wcb,
+ # but may be PublicInbox::GzipFilter::write. PSGI requires
+ # *_wcb methods respond to ->write (and ->close), not ->print
+ $fh->write($$bref);
# we're done with this, free this memory up ASAP since the
# calls after this may use much memory: