Index: /libmpc/trunk/libmpcdec/mpc_bits_reader.h
===================================================================
--- /libmpc/trunk/libmpcdec/mpc_bits_reader.h	(revision 341)
+++ /libmpc/trunk/libmpcdec/mpc_bits_reader.h	(revision 342)
@@ -67,5 +67,5 @@
 {
 	mpc_uint16_t code;
-	code = ((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count;
+	code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
 
 	while (code < Table->Code) Table++;
@@ -82,5 +82,5 @@
 	mpc_huff_lut tmp;
 	const mpc_huffman * Table;
-	code = ((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count;
+	code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
 
 	tmp = can->lut[code >> (16 - LUT_DEPTH)];
@@ -107,5 +107,5 @@
 	mpc_huff_lut tmp;
 	const mpc_huffman * Table;
-	code = (mpc_uint16_t)(((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count);
+	code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
 
 	tmp = lut->lut[code >> (16 - LUT_DEPTH)];
