Index: /libmpc/trunk/libmpcenc/bitstream.c
===================================================================
--- /libmpc/trunk/libmpcenc/bitstream.c	(revision 306)
+++ /libmpc/trunk/libmpcenc/bitstream.c	(revision 307)
@@ -133,7 +133,7 @@
 	nb &= (1 << k) - 1;
 
-	while( l > 32 ){
-		writeBits(e, 0, 32);
-		l -= 32;
+	while( l > 31 ){
+		writeBits(e, 0, 31);
+		l -= 31;
 	}
 	writeBits(e, 1, l);
Index: /libmpc/trunk/libmpcenc/libmpcenc.h
===================================================================
--- /libmpc/trunk/libmpcenc/libmpcenc.h	(revision 306)
+++ /libmpc/trunk/libmpcenc/libmpcenc.h	(revision 307)
@@ -95,4 +95,6 @@
  void writeMagic (mpc_encoder_t * e);
  void emptyBits(mpc_encoder_t * e);
+
+ /// maximum number of output bits is 31 !
  static mpc_inline void writeBits (mpc_encoder_t * e, mpc_uint32_t input, unsigned int bits )
  {
Index: /libmpc/trunk/mpc2sv8/mpc2sv8.c
===================================================================
--- /libmpc/trunk/mpc2sv8/mpc2sv8.c	(revision 306)
+++ /libmpc/trunk/mpc2sv8/mpc2sv8.c	(revision 307)
@@ -141,6 +141,6 @@
 	writeBlock(&e, "EI", MPC_FALSE, 0);
 	e.seek_ptr = ftell(e.outputFile);
-	writeBits (&e, 0, 8);
-	writeBits (&e, 0, 32); // jump 40 bits for seek table pointer
+	writeBits (&e, 0, 16);
+	writeBits (&e, 0, 24); // jump 40 bits for seek table pointer
 	writeBlock(&e, "SO", MPC_FALSE, 0); // reserve space for seek offset
 	while(MPC_TRUE)
Index: /libmpc/trunk/mpcenc/mpcenc.c
===================================================================
--- /libmpc/trunk/mpcenc/mpcenc.c	(revision 306)
+++ /libmpc/trunk/mpcenc/mpcenc.c	(revision 307)
@@ -1643,6 +1643,6 @@
 	if (NoSeekTable == 0) {
 		e.seek_ptr = ftell(e.outputFile);
-		writeBits (&e, 0, 8);
-		writeBits (&e, 0, 32); // jump 40 bits for seek table pointer
+		writeBits (&e, 0, 16);
+		writeBits (&e, 0, 24); // jump 40 bits for seek table pointer
 		writeBlock(&e, "SO", MPC_FALSE, 0); // reserve space for seek offset
 	}
