diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index f7ba9a95cf728ddebcb73921986c60488a9b6c4c..79b899a343b81539b51936e22b7368e084012d63 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -2268,6 +2268,16 @@ main(int argc, char **argv)
 		exit(1);
 	}
 
+	if (format == 't' && streamwal && strcmp(basedir, "-") == 0)
+	{
+		fprintf(stderr,
+			_("%s: cannot stream transaction logs in tar mode to stdout\n"),
+				progname);
+		fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
+				progname);
+		exit(1);
+	}
+
 	if (replication_slot && !streamwal)
 	{
 		fprintf(stderr,