diff --git a/libcelt/rate.c b/libcelt/rate.c
index e64b85de18bf1d2c358911f3dd2a60ab5d739a58..ed7e87235a62353193cbbdb5c3f84f699d7a5cc8 100644
--- a/libcelt/rate.c
+++ b/libcelt/rate.c
@@ -568,7 +568,7 @@ int compute_allocation(const CELTMode *m, int start, int end, const int *offsets
       /* Below this threshold, we're sure not to allocate any PVQ bits */
       thresh[j] = IMAX((C)<<BITRES, (3*(m->eBands[j+1]-m->eBands[j])<<LM<<BITRES)>>4);
       /* Tilt of the allocation curve */
-      trim_offset[j] = C*(m->eBands[j+1]-m->eBands[j])*(alloc_trim-5-LM)*(m->nbEBands-j-1)
+      trim_offset[j] = C*(m->eBands[j+1]-m->eBands[j])*(alloc_trim-5-LM)*(end-j-1)
             <<(LM+BITRES)>>6;
       /* Giving less resolution to single-coefficient bands because they get
          more benefit from having one coarse value per coefficient*/