diff --git a/src/solver/solver_manager.cpp b/src/solver/solver_manager.cpp
index a0580b66525f00a93d36d3d288a2a54fbd38a8b1..2f682d050f42e4490468252674a06dd4cf07b1df 100644
--- a/src/solver/solver_manager.cpp
+++ b/src/solver/solver_manager.cpp
@@ -358,7 +358,7 @@ bool SolverManager::isStateBlockRegistered(const StateBlockPtr& state_ptr) const
 
 bool SolverManager::isFactorRegistered(const FactorBasePtr& fac_ptr) const
 {
-    return isFactorRegisteredDerived(fac_ptr);
+    return factors_.count(fac_ptr) and isFactorRegisteredDerived(fac_ptr);
 }
 
 double SolverManager::getPeriod() const