diff --git a/archival/gunzip.c b/archival/gunzip.c
index 1ff3c40..70b25bd 100644
--- a/archival/gunzip.c
+++ b/archival/gunzip.c
@@ -1176,21 +1176,6 @@
 	bytes_in = bytes_out = 0L;
 }
 
-/* ===========================================================================
- * Write the output buffer outbuf[0..outcnt-1] and update bytes_out.
- * (used for the compressed data only)
- */
-void flush_outbuf()
-{
-	if (outcnt == 0)
-		return;
-
-	if (!test_mode)
-		write_buf(ofd, (char *) outbuf, outcnt);
-	bytes_out += (ulg) outcnt;
-	outcnt = 0;
-}
-
 /* ======================================================================== */
 int gunzip_main(int argc, char **argv)
 {
diff --git a/archival/gzip.c b/archival/gzip.c
index add94d0..2e147b1 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -3380,3 +3380,17 @@
 	isize += (ulg) len;
 	return (int) len;
 }
+
+/* ===========================================================================
+ * Write the output buffer outbuf[0..outcnt-1] and update bytes_out.
+ * (used for the compressed data only)
+ */
+void flush_outbuf()
+{
+	if (outcnt == 0)
+		return;
+
+	write_buf(ofd, (char *) outbuf, outcnt);
+	bytes_out += (ulg) outcnt;
+	outcnt = 0;
+}
diff --git a/gunzip.c b/gunzip.c
index 1ff3c40..70b25bd 100644
--- a/gunzip.c
+++ b/gunzip.c
@@ -1176,21 +1176,6 @@
 	bytes_in = bytes_out = 0L;
 }
 
-/* ===========================================================================
- * Write the output buffer outbuf[0..outcnt-1] and update bytes_out.
- * (used for the compressed data only)
- */
-void flush_outbuf()
-{
-	if (outcnt == 0)
-		return;
-
-	if (!test_mode)
-		write_buf(ofd, (char *) outbuf, outcnt);
-	bytes_out += (ulg) outcnt;
-	outcnt = 0;
-}
-
 /* ======================================================================== */
 int gunzip_main(int argc, char **argv)
 {
diff --git a/gzip.c b/gzip.c
index add94d0..2e147b1 100644
--- a/gzip.c
+++ b/gzip.c
@@ -3380,3 +3380,17 @@
 	isize += (ulg) len;
 	return (int) len;
 }
+
+/* ===========================================================================
+ * Write the output buffer outbuf[0..outcnt-1] and update bytes_out.
+ * (used for the compressed data only)
+ */
+void flush_outbuf()
+{
+	if (outcnt == 0)
+		return;
+
+	write_buf(ofd, (char *) outbuf, outcnt);
+	bytes_out += (ulg) outcnt;
+	outcnt = 0;
+}
