diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 51c3ccd8e40ddcc2df2bfa35ed22e7a9af27e973..b35ae1a865bd9c8c90a2e8b08f4330685251b5b5 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -1830,9 +1830,12 @@ void Problem::perturb(double amplitude)
     // Frames and Captures
     for (auto& F : getTrajectory()->getFrameList())
     {
-        F->perturb(amplitude);
-        for (auto& C : F->getCaptureList())
-            C->perturb(amplitude);
+        if (F->isKeyOrAux())
+        {
+            F->perturb(amplitude);
+            for (auto& C : F->getCaptureList())
+                C->perturb(amplitude);
+        }
     }
 
     // Landmarks