diff --git a/libavcodec/elbg.c b/libavcodec/elbg.c
index 9f8ed221a43706915b6f2e513eb714078fea851a..d56a0c3573ac9927ea8d4727390b551315b6747d 100644
--- a/libavcodec/elbg.c
+++ b/libavcodec/elbg.c
@@ -105,9 +105,12 @@ static int get_high_utility_cell(elbg_data *elbg)
 {
     int i=0;
     /* Using linear search, do binary if it ever turns to be speed critical */
-    int r = av_random(elbg->rand_state)%elbg->utility_inc[elbg->numCB-1];
+    int r = av_random(elbg->rand_state)%(elbg->utility_inc[elbg->numCB-1]-1) + 1;
     while (elbg->utility_inc[i] < r)
         i++;
+
+    assert(!elbg->cells[i]);
+
     return i;
 }