Index: /libmpc/branches/r2d/mpc2sv8/mpc2sv8.c
===================================================================
--- /libmpc/branches/r2d/mpc2sv8/mpc2sv8.c	(revision 233)
+++ /libmpc/branches/r2d/mpc2sv8/mpc2sv8.c	(revision 234)
@@ -103,11 +103,14 @@
 
 	if (si.stream_version >= 8) {
-		fprintf(stderr, "Error : this file is already a sv8 file\n");
-		mpc_demux_exit(demux);
-		mpc_reader_exit_stdio(&reader);
-		return MPC_STATUS_INVALIDSV;
+		fprintf(stderr, "Error : the file \"%s\" is already a sv8 file\n", argv[1]);
+		exit(MPC_STATUS_INVALIDSV);
 	}
 
 	mpc_encoder_init(&e, si.samples, 6, 1);
+	e.outputFile = fopen( argv[2], "rb" );
+	if ( e.outputFile != 0 ) {
+		fprintf(stderr, "Error : output file \"%s\" already exists\n", argv[2]);
+		exit(MPC_STATUS_FILE);
+	}
 	e.outputFile = fopen( argv[2], "w+b" );
 	e.MS_Channelmode = si.ms;
@@ -120,6 +123,6 @@
 		size_t tmp_size = fread(buf, 1, mini(TMP_BUF_SIZE, r_size), in_file);
 		if (fwrite(buf, 1, tmp_size, e.outputFile) != tmp_size) {
-			fprintf(stderr, "Error writing to target file\n");
-			exit(!MPC_STATUS_OK);
+			fprintf(stderr, "Error writing to target file : \"%s\"\n", argv[2]);
+			exit(MPC_STATUS_FILE);
 		}
 		r_size -= tmp_size;
