diff --git a/lib/go/thrift/header_transport.go b/lib/go/thrift/header_transport.go
index d81fb29..8148796 100644
--- a/lib/go/thrift/header_transport.go
+++ b/lib/go/thrift/header_transport.go
@@ -211,6 +211,25 @@
 	return nil
 }
 
+var zlibDefaultLevelWriterPool = newPool(
+	func() *zlib.Writer {
+		return zlib.NewWriter(nil)
+	},
+	nil,
+)
+
+type zlibPoolCloser struct {
+	writer *zlib.Writer
+}
+
+func (z *zlibPoolCloser) Close() error {
+	defer func() {
+		z.writer.Reset(nil)
+		zlibDefaultLevelWriterPool.put(&z.writer)
+	}()
+	return z.writer.Close()
+}
+
 // AddTransform adds a transform.
 func (tw *TransformWriter) AddTransform(id THeaderTransformID) error {
 	switch id {
@@ -222,9 +241,12 @@
 	case TransformNone:
 		// no-op
 	case TransformZlib:
-		writeCloser := zlib.NewWriter(tw.Writer)
+		writeCloser := zlibDefaultLevelWriterPool.get()
+		writeCloser.Reset(tw.Writer)
 		tw.Writer = writeCloser
-		tw.closers = append(tw.closers, writeCloser)
+		tw.closers = append(tw.closers, &zlibPoolCloser{
+			writer: writeCloser,
+		})
 	}
 	return nil
 }
