diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp
index c02228864e1db24fb0b43826736a26c1c6688451..5c769cde325442b711ff36c8a18f557a289ed6f6 100644
--- a/src/processor/processor_base.cpp
+++ b/src/processor/processor_base.cpp
@@ -118,7 +118,7 @@ void ProcessorBase::setProblem(ProblemPtr _problem)
     // adding processor is motion to the processor is motion vector
     auto is_motion_ptr = std::dynamic_pointer_cast<IsMotion>(shared_from_this());
     if (is_motion_ptr)
-        getProblem()->addProcessorIsMotion(is_motion_ptr);
+        is_motion_ptr->addToProblem(_problem, is_motion_ptr);
 }
 
 /////////////////////////////////////////////////////////////////////////////////////////