diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6a445e25899af65a9cf051c2da485b15440b6c12..ad51b04beb59ba5c6fe0deec4774e19c2a5e1ab4 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -915,6 +915,9 @@ int av_add_index_entry(AVStream *st,
                 memmove(entries + index + 1, entries + index, sizeof(AVIndexEntry)*(st->nb_index_entries - index));
             }
             st->nb_index_entries++;
+        }else{
+            if(ie->pos == pos && distance < ie->min_distance) //dont reduce the distance
+                distance= ie->min_distance;
         }
     }else{
         index= st->nb_index_entries++;