diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index bd368ec3ac51c65df24f051455a7a895f7add19e..014a0beea1a85802eb8db283c830f07a8fe32603 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -570,13 +570,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
             else
                 s.setSoTimeout(SERVER_READ_TIMEOUT_POST);
             
-            Runnable t;
-            if (allowGZIP && useGZIP) {
-                t = new CompressedRequestor(s, socket, modifiedHeader, getTunnel().getContext(), _log);
-            } else {
-                t = new I2PTunnelRunner(s, socket, slock, null, DataHelper.getUTF8(modifiedHeader),
-                                               null, (I2PTunnelRunner.FailCallback) null);
-            }
+            boolean compress = allowGZIP && useGZIP;
+            Runnable t = new CompressedRequestor(s, socket, modifiedHeader, getTunnel().getContext(), _log, compress);
             // run in the unlimited client pool
             //t.start();
             _clientExecutor.execute(t);
@@ -634,20 +629,24 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
         private final I2PAppContext _ctx;
         // shadows _log in super()
         private final Log _log;
+        private final boolean _shouldCompress;
 
         private static final int BUF_SIZE = 8*1024;
 
-        public CompressedRequestor(Socket webserver, I2PSocket browser, String headers, I2PAppContext ctx, Log log) {
+        /**
+         *  @param shouldCompress if false, don't compress, just filter server headers
+         */
+        public CompressedRequestor(Socket webserver, I2PSocket browser, String headers,
+                                   I2PAppContext ctx, Log log, boolean shouldCompress) {
             _webserver = webserver;
             _browser = browser;
             _headers = headers;
             _ctx = ctx;
             _log = log;
+            _shouldCompress = shouldCompress;
         }
 
         public void run() {
-            if (_log.shouldDebug())
-                _log.debug("Compressed requestor running");
             OutputStream serverout = null;
             OutputStream browserout = null;
             InputStream browserin = null;
@@ -691,21 +690,22 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
                 } catch (NullPointerException npe) {
                     throw new IOException("getInputStream NPE");
                 }
-                CompressedResponseOutputStream compressedOut = new CompressedResponseOutputStream(browserout);
 
                 //Change headers to protect server identity
                 StringBuilder command = new StringBuilder(128);
                 Map<String, List<String>> headers = readHeaders(null, serverin, command,
                     SERVER_SKIPHEADERS, _ctx);
                 String modifiedHeaders = formatHeaders(headers, command);
-                compressedOut.write(DataHelper.getUTF8(modifiedHeaders));
 
-                s = new Sender(compressedOut, serverin, "server: server to browser", _log);
-                if (_log.shouldDebug())
-                    _log.debug("Before pumping the compressed response");
+                if (_shouldCompress) {
+                    CompressedResponseOutputStream compressedOut = new CompressedResponseOutputStream(browserout);
+                    compressedOut.write(DataHelper.getUTF8(modifiedHeaders));
+                    s = new Sender(compressedOut, serverin, "server: server to browser compressor", _log);
+                } else {
+                    browserout.write(DataHelper.getUTF8(modifiedHeaders));
+                    s = new Sender(browserout, serverin, "server: server to browser uncompressed", _log);
+                }
                 s.run(); // same thread
-                if (_log.shouldDebug())
-                    _log.debug("After pumping the compressed response: " + compressedOut.getTotalRead() + "/" + compressedOut.getTotalCompressed());
             } catch (SSLException she) {
                 _log.error("SSL error", she);
                 try {