Index: /libmpc/branches/r2d/libmpcdec/mpc_demux.c
===================================================================
--- /libmpc/branches/r2d/libmpcdec/mpc_demux.c	(revision 147)
+++ /libmpc/branches/r2d/libmpcdec/mpc_demux.c	(revision 148)
@@ -241,9 +241,4 @@
 void mpc_demux_decode(mpc_demux * d, mpc_frame_info * i)
 {
-	if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
-		d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
-		d->seek_table_size ++;
-	}
-
 	if (d->si.stream_version >= 8) {
 		mpc_bits_reader r;
@@ -251,4 +246,8 @@
 			mpc_block b;
 			d->bits_reader.count &= -8;
+			if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
+				d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
+				d->seek_table_size ++;
+			}
 			mpc_demux_fill(d, 11, 0); // max header block size
 			mpc_bits_get_block(&d->bits_reader, &b);
@@ -270,4 +269,8 @@
 		d->block_bits -= ((d->bits_reader.buff - r.buff) << 3) + r.count - d->bits_reader.count;
 	} else {
+		if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
+			d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
+			d->seek_table_size ++;
+		}
 		mpc_bits_reader r;
 		mpc_demux_fill(d, MAX_FRAME_SIZE, MPC_BUFFER_FULL | MPC_BUFFER_SWAP);
