diff --git a/libavcodec/opus_rc.c b/libavcodec/opus_rc.c
index c5cccd6cd2f77d7b53a90d0f375952feda20c6d5..3972bb0b028303b0c368cad6517a7661befb7e67 100644
--- a/libavcodec/opus_rc.c
+++ b/libavcodec/opus_rc.c
@@ -108,7 +108,7 @@ uint32_t ff_opus_rc_dec_cdf(OpusRangeCoder *rc, const uint16_t *cdf)
 
 void ff_opus_rc_enc_cdf(OpusRangeCoder *rc, int val, const uint16_t *cdf)
 {
-    opus_rc_enc_update(rc, cdf[val], cdf[val + 1], cdf[0], 1);
+    opus_rc_enc_update(rc, (!!val)*cdf[val], cdf[val + 1], cdf[0], 1);
 }
 
 uint32_t ff_opus_rc_dec_log(OpusRangeCoder *rc, uint32_t bits)