diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp
index 3d4cb43942b60b1bf9103593483d4ca8d394eb48..b2bf22587e0fdcb7db821aaa14eca842357b1a8c 100644
--- a/src/processor/processor_motion.cpp
+++ b/src/processor/processor_motion.cpp
@@ -90,7 +90,8 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
         return;
     }
 
-    incoming_ptr_ = std::static_pointer_cast<CaptureMotion>(_incoming_ptr);
+    incoming_ptr_ = std::dynamic_pointer_cast<CaptureMotion>(_incoming_ptr);
+    assert(incoming_ptr_ != nullptr && ("Capture type mismatch. Processor " + getName() + " can only process captures of type CaptureMotion").c_str());
 
     preProcess(); // Derived class operations