diff --git a/src/capture/capture_base.cpp b/src/capture/capture_base.cpp
index e6d4a1e660bd0664f2fa1196c2ab558840664263..a154cdbb4b62606dc5260310cbfd5b4052bda54c 100644
--- a/src/capture/capture_base.cpp
+++ b/src/capture/capture_base.cpp
@@ -158,13 +158,15 @@ FactorBasePtrList CaptureBase::getFactorList()
 void CaptureBase::getFactorList(FactorBaseConstPtrList& _fac_list) const
 {
     for (auto f_ptr : getFeatureList())
-        f_ptr->getFactorList(_fac_list);
+        if (not f_ptr->isRemoving())
+            f_ptr->getFactorList(_fac_list);
 }
 
 void CaptureBase::getFactorList(FactorBasePtrList& _fac_list)
 {
     for (auto f_ptr : getFeatureList())
-        f_ptr->getFactorList(_fac_list);
+        if (not f_ptr->isRemoving())
+            f_ptr->getFactorList(_fac_list);
 }
 
 FactorBasePtr CaptureBase::addConstrainedBy(FactorBasePtr _fac_ptr)
diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp
index aae21b6eb2fa9d5552e8212259299b71e0e0c440..390d6d51019aea6a65208707b1b8671194dc060e 100644
--- a/src/frame/frame_base.cpp
+++ b/src/frame/frame_base.cpp
@@ -351,13 +351,15 @@ FactorBasePtrList FrameBase::getFactorList()
 void FrameBase::getFactorList(FactorBaseConstPtrList& _fac_list) const
 {
     for (auto c_ptr : getCaptureList())
-        c_ptr->getFactorList(_fac_list);
+        if (not c_ptr->isRemoving())
+            c_ptr->getFactorList(_fac_list);
 }
 
 void FrameBase::getFactorList(FactorBasePtrList& _fac_list)
 {
     for (auto c_ptr : getCaptureList())
-        c_ptr->getFactorList(_fac_list);
+        if (not c_ptr->isRemoving())
+            c_ptr->getFactorList(_fac_list);
 }
 
 bool FrameBase::hasCapture(const CaptureBaseConstPtr& _capture) const
diff --git a/src/trajectory/trajectory_base.cpp b/src/trajectory/trajectory_base.cpp
index 24de3de294a6e65ea409d345a31a23393904ae50..244d6a505d66143823e6a67456c33972ff86a588 100644
--- a/src/trajectory/trajectory_base.cpp
+++ b/src/trajectory/trajectory_base.cpp
@@ -54,13 +54,15 @@ void TrajectoryBase::removeFrame(FrameBasePtr _frame_ptr)
 void TrajectoryBase::getFactorList(FactorBaseConstPtrList & _fac_list) const
 {
 	for(auto fr_pair: frame_map_)
-		fr_pair.second->getFactorList(_fac_list);
+        if (not fr_pair.second->isRemoving())
+	    	fr_pair.second->getFactorList(_fac_list);
 }
 
 void TrajectoryBase::getFactorList(FactorBasePtrList & _fac_list)
 {
 	for(auto fr_pair: frame_map_)
-		fr_pair.second->getFactorList(_fac_list);
+        if (not fr_pair.second->isRemoving())
+    		fr_pair.second->getFactorList(_fac_list);
 }
 
 TimeStamp TrajectoryBase::closestTimeStampToTimeStamp(const TimeStamp& _ts) const