* archival/gzip.c (gzip_main): Ensure that the output is a terminal and use
  error_msg to display the error message.
diff --git a/archival/gzip.c b/archival/gzip.c
index fed9390..44b5fe3 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -1312,8 +1312,8 @@
 					outFileNum = STDOUT_FILENO;
 			}
 
-			if (path == NULL && force == 0) {
-				perror_msg("compressed data not written to a terminal. Use -f to force compression.");
+			if (path == NULL && isatty(outFileNum) && force == 0) {
+				error_msg("compressed data not written to a terminal. Use -f to force compression.");
 				free(path);
 				continue;
 			}