diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp
index 34e36705f665fa0d09cf6080b6f17697d9d58d55..85f94bd2a97af8a68e4b1551d3352daa8e8906d8 100644
--- a/src/frame/frame_base.cpp
+++ b/src/frame/frame_base.cpp
@@ -140,7 +140,8 @@ void FrameBase::setNonEstimated()
 {
     // unregister if previously estimated
     if (isKeyOrAux())
-        removeStateBlocks(getProblem());
+        for (const auto& sb : getStateBlockVec())
+            getProblem()->notifyStateBlock(sb, REMOVE);
 
     type_ = NON_ESTIMATED;
     if (getTrajectory())