diff --git a/Trajectories/cost_function.py b/Trajectories/cost_function.py
index b795e0dd487e39bee385274345b6cbb54094bd5e..c62860cb9c9683c677a175ed605d6168e015e49d 100755
--- a/Trajectories/cost_function.py
+++ b/Trajectories/cost_function.py
@@ -150,9 +150,10 @@ def search_end(inst_eddies, max_delta, avg_fix, e_overestim):
     computation is not implemented that way.
 
     """
-    ip = max(len(inst_eddies) - max_delta - 1, 0)
+    i_max = len(inst_eddies) - 1
+    ip = max(i_max - max_delta, 0)
 
-    if not avg_fix and ip <= len(inst_eddies) - 2:
+    if not avg_fix and ip < i_max:
         d_min = (
             util_eddies.node_to_date_eddy(
                 inst_eddies[-1], e_overestim, only_date=True
@@ -162,7 +163,7 @@ def search_end(inst_eddies, max_delta, avg_fix, e_overestim):
         # {date(elem) < d_min for elem in inst_eddies[:ip]}
 
         while (
-            ip <= len(inst_eddies) - 2
+            ip < i_max
             and util_eddies.node_to_date_eddy(
                 inst_eddies[ip], e_overestim, only_date=True
             )