* archival/bunzip2.c (bunzip2_main): Remove compressed file.
* testsuite/bunzip2/bunzip2-removes-compressed-file: New.
diff --git a/archival/bunzip2.c b/archival/bunzip2.c
index 678779e..a7b41b7 100644
--- a/archival/bunzip2.c
+++ b/archival/bunzip2.c
@@ -2323,10 +2323,12 @@
 	const int bunzip_force = 2;
 	int flags = 0;
 	int opt = 0;
+	int status;
 
 	FILE *src_stream;
 	FILE *dst_stream;
 	char *save_name = NULL;
+	char *delete_name = NULL;
 
 	/* if called as bzcat */
 	if (strcmp(applet_name, "bzcat") == 0)
@@ -2369,7 +2371,22 @@
 	} else {
 		dst_stream = xfopen(save_name, "w");
 	}
-	uncompressStream(src_stream, dst_stream);
 
-	return(TRUE);
+	if (uncompressStream(src_stream, dst_stream)) {
+		if (save_name != NULL)
+			delete_name = argv[optind];
+		status = EXIT_SUCCESS;
+	} else {
+		if (save_name != NULL)
+			delete_name = save_name;
+		status = EXIT_FAILURE;
+	}
+
+	if (delete_name) {
+		if (unlink(delete_name) < 0) {
+			error_msg_and_die("Couldn't remove %s", delete_name);
+		}
+	}
+
+	return status;
 }