* archival/bunzip2.c (bunzip2_main): Do not remove files if writing to standard
  output.
* testsuite/bunzip2/bzcat-does-not-remove-compressed-file: New.
diff --git a/archival/bunzip2.c b/archival/bunzip2.c
index a7b41b7..f2d5149 100644
--- a/archival/bunzip2.c
+++ b/archival/bunzip2.c
@@ -2373,11 +2373,11 @@
 	}
 
 	if (uncompressStream(src_stream, dst_stream)) {
-		if (save_name != NULL)
+		if (!(flags & bunzip_to_stdout))
 			delete_name = argv[optind];
 		status = EXIT_SUCCESS;
 	} else {
-		if (save_name != NULL)
+		if (!(flags & bunzip_to_stdout))
 			delete_name = save_name;
 		status = EXIT_FAILURE;
 	}
diff --git a/testsuite/bunzip2/bzcat-does-not-remove-compressed-file b/testsuite/bunzip2/bzcat-does-not-remove-compressed-file
new file mode 100644
index 0000000..7d4016e
--- /dev/null
+++ b/testsuite/bunzip2/bzcat-does-not-remove-compressed-file
@@ -0,0 +1,3 @@
+echo foo | bzip2 >foo.bz2
+busybox bzcat foo.bz2
+test -f foo.bz2