Index: /libmpc/trunk/include/mpc/mpcdec.h
===================================================================
--- /libmpc/trunk/include/mpc/mpcdec.h	(revision 488)
+++ /libmpc/trunk/include/mpc/mpcdec.h	(revision 489)
@@ -117,4 +117,6 @@
 /// decode frame
 MPC_API mpc_status mpc_demux_decode(mpc_demux * d, mpc_frame_info * i);
+/// decode frame : use mpc_demux_decode() instead. This function is only used by mpc2sv8.
+MPC_API mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i);
 /// get streaminfo
 MPC_API void mpc_demux_get_info(mpc_demux * d, mpc_streaminfo * i);
Index: /libmpc/trunk/libmpcdec/mpc_demux.c
===================================================================
--- /libmpc/trunk/libmpcdec/mpc_demux.c	(revision 488)
+++ /libmpc/trunk/libmpcdec/mpc_demux.c	(revision 489)
@@ -567,5 +567,5 @@
 }
 
-static mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i)
+mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i)
 {
 	mpc_bits_reader r;
Index: /libmpc/trunk/mpc2sv8/mpc2sv8.c
===================================================================
--- /libmpc/trunk/mpc2sv8/mpc2sv8.c	(revision 488)
+++ /libmpc/trunk/mpc2sv8/mpc2sv8.c	(revision 489)
@@ -163,7 +163,7 @@
 
 		demux->d->samples_to_skip = MPC_FRAME_LENGTH + MPC_DECODER_SYNTH_DELAY;
-		err = mpc_demux_decode(demux, &frame);
-
-		if(frame.bits == -1) break;
+        err = mpc_demux_decode_inner(demux, &frame);
+
+        if (MPC_IS_FAILURE(err) || frame.bits == -1) break;
 
 		datacpy(demux->d, &e);
