diff --git a/README b/README
index 33ee0d5f1d55689761c104d7abd3bbe98658af38..87278175c205a8321026f819ad776161e2d829cc 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@ To compile:
 % make
 
 To test the encoder:
-% testcelt <rate> <channels> <frame size> <overlap> <bytes per packet> input.sw output.sw
+% testcelt <rate> <channels> <frame size> <bytes per packet> input.sw output.sw
 
 where input.sw is a 16-bit (machine endian) audio file sampled at 
 44.1 kHz or 48 kHz. The output file is already decompressed. 
diff --git a/TODO b/TODO
index 54411e77a82100c0d057cef48131ee33abc7d9b8..05826ed27be9b0cdea8645d8e76ea6ecf438395a 100644
--- a/TODO
+++ b/TODO
@@ -1,16 +1,13 @@
 - Check minimum width of bands
-- Adjust the energy resolution based on the bit-rate
+- Revisit energy resolution based on the bit-rate
+- Revisit static bit allocation (as a function of frame size and channels)
 - Dynamic adjustment of energy quantisation
 - Psychacoustics
   * Error shaping within each band
-  * Desisions on the rate
-- Intensity stereo option (e.g. threshold)
+  * Decisions on the rate
+- Intensity stereo decisions
 - Dynamic (intra-frame) bit allocation 
 - Joint encoding of stereo energy
-- Disable intra-frame prediction for more than X pulses
-- Remove contraction?
-- Simplify search?
-- Remove pulse spreading?
 
 - Encode band shape (or just tilt)?
 - Make energy encoding more robust to losses?
diff --git a/libcelt/modes.c b/libcelt/modes.c
index e41d2a6fa70207f4b75a55dd82083d4f43bbb137..3fc4a875fe911e48b698a3ad27f464791fbdaf65 100644
--- a/libcelt/modes.c
+++ b/libcelt/modes.c
@@ -208,11 +208,14 @@ static void compute_allocation_table(CELTMode *mode, int res)
       eband = 0;
       for (j=0;j<BARK_BANDS;j++)
       {
-         int edge, low, alloc;
+         int edge, low;
+         celt_int32_t alloc;
          edge = mode->eBands[eband+1]*res;
          alloc = band_allocation[i*BARK_BANDS+j];
          if (mode->nbChannels == 2)
-            alloc += alloc/2;
+            alloc = alloc*3*mode->mdctSize/512;
+         else
+            alloc = alloc*mode->mdctSize/256;
          if (edge < bark_freq[j+1])
          {
             int num, den;