diff --git a/src/problem.cpp b/src/problem.cpp
index 8c639c114c44031bfcb73a7dadd915b296ec43fb..f22844b1cd3474c15fae7cc4ba6bb0a7ae2b915c 100644
--- a/src/problem.cpp
+++ b/src/problem.cpp
@@ -326,7 +326,7 @@ void Problem::keyFrameCallback(FrameBasePtr _keyframe_ptr, ProcessorBasePtr _pro
     //std::cout << "Problem::keyFrameCallback: processor " << _processor_ptr->getName() << std::endl;
     for (auto sensor : hardware_ptr_->getSensorList())
     	for (auto processor : sensor->getProcessorList())
-    		if (processor->id() != _processor_ptr->id())
+    		if (processor && (processor != _processor_ptr) )
                 processor->keyFrameCallback(_keyframe_ptr, _time_tolerance);
 }