diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp
index 894507c17da4b767c6971bbdaa6865b9c1481258..11dee8587c0e1ba03a77f23902f6a7a18c00e6ec 100644
--- a/src/processor/processor_motion.cpp
+++ b/src/processor/processor_motion.cpp
@@ -60,7 +60,6 @@ void ProcessorMotion::mergeCaptures(CaptureMotionConstPtr cap_prev,
 {
     assert(cap_prev != nullptr);
     assert(cap_target != nullptr);
-    assert(cap_target->getOriginCapture() != nullptr);
     assert(cap_prev == cap_target->getOriginCapture() && "merging not consecutive capture motions");
 
     // add prev buffer (discarding the first zero motion)
@@ -88,7 +87,7 @@ void ProcessorMotion::mergeCaptures(CaptureMotionConstPtr cap_prev,
     }
 
     // emplace new feature and factor (if origin has frame)
-    if (cap_prev->getOriginCapture()->getFrame())
+    if (cap_prev->getOriginCapture() and cap_prev->getOriginCapture()->getFrame())
     {
         auto new_feature = emplaceFeature(cap_target);
         emplaceFactor(new_feature, cap_prev->getOriginCapture());
diff --git a/test/gtest_processor_motion.cpp b/test/gtest_processor_motion.cpp
index e531defd5721e3374308d67e793a01f682701577..92bf678d4ba06af85c6c0da5724f9b7f4908f186 100644
--- a/test/gtest_processor_motion.cpp
+++ b/test/gtest_processor_motion.cpp
@@ -315,7 +315,7 @@ TEST_F(ProcessorMotion_test, mergeCaptures)
     FrameBasePtr     F_target = problem->emplaceFrame(t_target);
     CaptureMotionPtr C_source = std::dynamic_pointer_cast<CaptureMotion>(processor->getLast());
     CaptureMotionPtr C_target = CaptureBase::emplace<CaptureMotion>(F_target,
-                                                                    "ODOM 2d",
+                                                                    "CaptureOdom2d",
                                                                     t_target,
                                                                     sensor,
                                                                     data,