diff --git a/cal_tools/cal_tools/agipdlib.py b/cal_tools/cal_tools/agipdlib.py
index 2c2de40f86486c5cdc165e91332680675cde0705..47198bc147d9c635f91742aee713981551aa8fd5 100644
--- a/cal_tools/cal_tools/agipdlib.py
+++ b/cal_tools/cal_tools/agipdlib.py
@@ -1291,16 +1291,24 @@ class AgipdCorrections:
                                          return_index=True,
                                          return_counts=True)
 
-            # Validate calculated CORR INDEX contents.
+            # Validate calculated CORR INDEX contents by checking difference between
+            # trainId stored in RAW data and trains from
             train_diff = np.isin(np.array(self.infile["/INDEX/trainId"]), uq, invert=True)
 
             # Insert zeros for missing trains.
+            # fidxv and cntsv should have same length as
+            # raw INDEX/.../image/first and INDEX/.../image/count,
+            # respectively
             for i, diff in enumerate(train_diff):
                 if diff:
                     if i < len(cntsv):
                         cntsv = np.insert(cntsv, i, 0)
-                        fidxv = np.insert(fidxv, i, 0)
+                        if i == 0:
+                            fidxv = np.insert(fidxv, i, 0)
+                        else:
+                            fidxv = np.insert(fidxv, i, fidxv[i-1])
                     else:
+                        # append if at the end of the array
                         cntsv = np.append(cntsv, 0)
                         fidxv = np.append(fidxv, 0)