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())
diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp
index 1818c2fbb57aabadd33af0203a4083483aa931bd..e1746423ede422b999b387b71882735f6ff58b93 100644
--- a/src/processor/processor_motion.cpp
+++ b/src/processor/processor_motion.cpp
@@ -625,7 +625,7 @@ void ProcessorMotion::setProblem(ProblemPtr _problem)
         return;
 
     std::string str = "Processor works with " + std::to_string(dim_) + "D but problem is " + std::to_string(_problem->getDim()) + "D";
-    assert(dim_ == 0 or dim_ == _problem->getDim() && str.c_str());
+    assert(((dim_ == 0) or (dim_ == _problem->getDim())) && str.c_str());
 
     if (_problem == this->getProblem())
         return;