diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index a30e1cd9fa68fe963127d612fbed23fab461a033..00f8a1cd8f85a7a84e63b0b78a7217054e049ca2 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -804,11 +804,12 @@ int opus_encode_float(OpusEncoder *st, const opus_val16 *pcm, int frame_size,
             if (st->mode == MODE_HYBRID)
                 ec_enc_uint(&enc, redundancy_bytes-2, 256);
         }
-        start_band = 17;
     } else {
         redundancy = 0;
     }
 
+    if (st->mode != MODE_CELT_ONLY)start_band=17;
+
     if (st->mode == MODE_SILK_ONLY)
     {
         ret = (ec_tell(&enc)+7)>>3;