diff --git a/silk/silk_decode_pulses.c b/silk/silk_decode_pulses.c
index 9c0aa94a58b105714add7acca50473efbbecf21c..eb99f61c12c5404b63254fbd4c6fec3f9953b7b7 100644
--- a/silk/silk_decode_pulses.c
+++ b/silk/silk_decode_pulses.c
@@ -67,7 +67,9 @@ void silk_decode_pulses(
         /* LSB indication */
         while( sum_pulses[ i ] == MAX_PULSES + 1 ) {
             nLshifts[ i ]++;
-            sum_pulses[ i ] = ec_dec_icdf( psRangeDec, silk_pulses_per_block_iCDF[ N_RATE_LEVELS - 1 ], 8 );
+            /* When we've already got 10 LSBs, we shift the table to not allow (MAX_PULSES + 1) */
+            sum_pulses[ i ] = ec_dec_icdf( psRangeDec,
+            		silk_pulses_per_block_iCDF[ N_RATE_LEVELS - 1] + (nLshifts[ i ]==10), 8 );
         }
     }