diff --git a/src/bin/pg_dump/compress_io.c b/src/bin/pg_dump/compress_io.c
index d9288108d612494ab2954b9db6b1cee582979576..825334fd5e486a55bc3f5453957de2b459e1feb7 100644
--- a/src/bin/pg_dump/compress_io.c
+++ b/src/bin/pg_dump/compress_io.c
@@ -32,6 +32,20 @@
 
 #include "compress_io.h"
 
+
+/* typedef appears in compress_io.h */
+struct CompressorState
+{
+	CompressionAlgorithm comprAlg;
+	WriteFunc			writeF;
+
+#ifdef HAVE_LIBZ
+	z_streamp			zp;
+	char			   *zlibOut;
+	size_t				zlibOutSize;
+#endif
+};
+
 static const char *modulename = gettext_noop("compress_io");
 
 static void ParseCompressionOption(int compression, CompressionAlgorithm *alg,
diff --git a/src/bin/pg_dump/compress_io.h b/src/bin/pg_dump/compress_io.h
index bbf450a38905e033aed3932b418c97cbaf46513d..26930cdb26c33f220fce233c68815c74d0c7af14 100644
--- a/src/bin/pg_dump/compress_io.h
+++ b/src/bin/pg_dump/compress_io.h
@@ -44,17 +44,8 @@ typedef size_t (*WriteFunc)(ArchiveHandle *AH, const char *buf, size_t len);
  */
 typedef size_t (*ReadFunc)(ArchiveHandle *AH, char **buf, size_t *buflen);
 
-typedef struct _CompressorState
-{
-	CompressionAlgorithm comprAlg;
-	WriteFunc			writeF;
-
-#ifdef HAVE_LIBZ
-	z_streamp			zp;
-	char			   *zlibOut;
-	size_t				zlibOutSize;
-#endif
-} CompressorState;
+/* struct definition appears in compress_io.c */
+typedef struct CompressorState CompressorState;
 
 extern CompressorState *AllocateCompressor(int compression, WriteFunc writeF);
 extern void ReadDataFromArchive(ArchiveHandle *AH, int compression,