Index: libmpc/branches/r2d/libmpcdec/mpc_decoder.c
===================================================================
--- libmpc/branches/r2d/libmpcdec/mpc_decoder.c	(revision 172)
+++ libmpc/branches/r2d/libmpcdec/mpc_decoder.c	(revision 177)
@@ -152,5 +152,7 @@
 	mpc_int64_t samples_left;
 
-	if (d->decoded_samples >= d->samples && d->samples != 0) {
+	samples_left = d->samples - d->decoded_samples + MPC_DECODER_SYNTH_DELAY;
+
+	if (samples_left <= 0 && d->samples != 0) {
 		i->samples = 0;
 		i->bits = -1;
@@ -177,5 +179,4 @@
 	}
 
-	samples_left = d->samples - d->decoded_samples + MPC_DECODER_SYNTH_DELAY;
 	i->samples = samples_left > MPC_FRAME_LENGTH ? MPC_FRAME_LENGTH : samples_left < 0 ? 0 : (mpc_uint32_t) samples_left;
 	i->bits = (mpc_uint32_t) (((r->buff - r_sav.buff) << 3) + r_sav.count - r->count);
