diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
index 0c85aae96214fb8eefb3cae1e269c6d67fdcee06..6d3f9e03e8c26e0ebaab7a2772f94e2f85a3f149 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
@@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletResponse;
 import net.i2p.I2PAppContext;
 import net.i2p.data.ByteArray;
 import net.i2p.data.DataHelper;
+import net.i2p.servlet.util.WriterOutputStream;
 import net.i2p.util.ByteCache;
 import net.i2p.util.Log;
 import net.i2p.util.SystemVersion;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/WriterOutputStream.java b/apps/i2psnark/java/src/org/klomp/snark/web/WriterOutputStream.java
deleted file mode 100644
index c4aa37bc54f5e5bdcbf5096c849fda224a1ce5ac..0000000000000000000000000000000000000000
--- a/apps/i2psnark/java/src/org/klomp/snark/web/WriterOutputStream.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.klomp.snark.web;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
-
-/**
- * Treat a writer as an output stream. Quick 'n dirty, none
- * of that "intarnasheeonaleyzayshun" stuff.  So we can treat
- * the jsp's PrintWriter as an OutputStream
- *
- * @since Jetty 7 copied from routerconsole
- */
-class WriterOutputStream extends OutputStream {
-    private final Writer _writer;
-    
-    public WriterOutputStream(Writer writer) { _writer = writer; }
-    public void write(int b) throws IOException { _writer.write(b); }
-}
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java b/apps/jetty/java/src/net/i2p/servlet/util/WriterOutputStream.java
similarity index 77%
rename from apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java
rename to apps/jetty/java/src/net/i2p/servlet/util/WriterOutputStream.java
index 5973e98ea0d1b0323803187405bbc8b55dc5d022..9bd6502c6198c255f8657ea4afa6fcccca66e360 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WriterOutputStream.java
+++ b/apps/jetty/java/src/net/i2p/servlet/util/WriterOutputStream.java
@@ -1,4 +1,4 @@
-package net.i2p.router.web.helpers;
+package net.i2p.servlet.util;
 
 import java.io.IOException;
 import java.io.OutputStream;
@@ -8,10 +8,13 @@ import java.io.Writer;
  * Treat a writer as an output stream. Quick 'n dirty, none
  * of that "intarnasheeonaleyzayshun" stuff.  So we can treat
  * the jsp's PrintWriter as an OutputStream
+ *
+ * @since 0.9.33 consolidated from routerconsole and i2psnark
  */
 public class WriterOutputStream extends OutputStream {
-    private Writer _writer;
+    private final Writer _writer;
     
     public WriterOutputStream(Writer writer) { _writer = writer; }
+
     public void write(int b) throws IOException { _writer.write(b); }
 }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java
index 7a0bf9ed43d875438d39fd53d8b921c497980fec..1bf208942c10c048e79aa5d262f7f036c85fd79a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/StatHelper.java
@@ -6,6 +6,7 @@ import java.util.Set;
 import net.i2p.data.DataFormatException;
 import net.i2p.data.Hash;
 import net.i2p.router.web.HelperBase;
+import net.i2p.servlet.util.WriterOutputStream;
 
 /**
  *  Dump the peer profile data if given a full B64 peer string or prefix.