diff --git a/src/processor_motion.cpp b/src/processor_motion.cpp
index de044f52334c94b49688df4f2aa3d2c6150f0b3a..315abfea1fb072ce5558683ed9302139656bce4b 100644
--- a/src/processor_motion.cpp
+++ b/src/processor_motion.cpp
@@ -46,7 +46,14 @@ void ProcessorMotion::process(CaptureBasePtr _incoming_ptr)
         return;
     }
 
-    incoming_ptr_ = std::static_pointer_cast<CaptureMotion>(_incoming_ptr);
+    incoming_ptr_ = processIncomingCapture(_incoming_ptr);
+
+    /// @todo Anything else to do ?
+    if (incoming_ptr_ == nullptr)
+    {
+      WOLF_WARN("Processor motion received a nullptr incoming_ptr_.")
+      return;
+    }
 
     preProcess(); // Derived class operations
 
diff --git a/src/processor_motion.h b/src/processor_motion.h
index df3471855ac4b030db679cfa7cd0027afc9328b9..03d6132447aaaf7a529d0c80154d6aa4197a0cb6 100644
--- a/src/processor_motion.h
+++ b/src/processor_motion.h
@@ -198,6 +198,15 @@ class ProcessorMotion : public ProcessorBase
         void splitBuffer(const TimeStamp& _t_split, MotionBuffer& _oldest_part);
         void reintegrateBuffer(CaptureMotionPtr _capture_ptr);
 
+        /**
+         * @brief @brief Process the incoming CaptureBase an return a CaptureMotion.
+         * If not overloaded, the default impl simply calls
+         * static_pointer_cast<CaptureMotion>(incoming).
+         * @param _incoming_ptr, the incoming Capture to be processed.
+         * @return A CaptureMotionPtr.
+         */
+        CaptureMotionPtr processIncomingCapture(CaptureBasePtr _incoming_ptr);
+
         /** Pre-process incoming Capture
          *
          * This is called by process() just after assigning incoming_ptr_ to a valid Capture.
@@ -508,6 +517,11 @@ inline Scalar ProcessorMotion::updateDt()
     return dt_ = incoming_ptr_->getTimeStamp() - getBuffer().get().back().ts_;
 }
 
+inline CaptureMotionPtr ProcessorMotion::processIncomingCapture(CaptureBasePtr _incoming_ptr)
+{
+  return std::static_pointer_cast<CaptureMotion>(_incoming_ptr);
+}
+
 inline const MotionBuffer& ProcessorMotion::getBuffer() const
 {
     return last_ptr_->getBuffer();