diff --git a/navipy/trajectories/__init__.py b/navipy/trajectories/__init__.py
index 8051f6583fa29dc93bf16c66517a939eb173798d..8f5f3c7a7e2e592b1d80c274eb3bbf732df69a30 100644
--- a/navipy/trajectories/__init__.py
+++ b/navipy/trajectories/__init__.py
@@ -641,7 +641,13 @@ class Trajectory(pd.DataFrame):
                                 dtype=float)
         diffrow = self.diff()
         velocity.loc[:, ['dx', 'dy', 'dz']] = diffrow.loc[:, 'location'].values
-        for index_i, row in self.iterrows():
+        # Look for true zeros in order to save time
+        true_zeros = diffrow == 0
+        diffrow[true_zeros] = np.nan
+        velocity[true_zeros[self.rotation_mode]] = 0
+        # Loop only on non true zeros
+        for index_i in diffrow.loc[:, self.rotation_mode].dropna().index:
+            row = self.loc[index_i, :]
             if self.rotation_mode == 'quaternion':
                 raise NameError('Not implemented')
             else: