diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp
index 7df23b32b9d6f1bf876f796715ff6903fc6fd4bb..aac84686825ac6eb9e57c0bda3a1de62c2f8c622 100644
--- a/src/frame/frame_base.cpp
+++ b/src/frame/frame_base.cpp
@@ -205,6 +205,11 @@ FactorBasePtr FrameBase::getFactorOf(const ProcessorBasePtr _processor_ptr, cons
     for (const FactorBasePtr& factor_ptr : getConstrainedByList())
         if (factor_ptr->getProcessor() == _processor_ptr && factor_ptr->getType() == type)
             return factor_ptr;
+
+    for (const FactorBasePtr& factor_ptr : getFactorList())
+        if (factor_ptr->getProcessor() == _processor_ptr && factor_ptr->getType() == type)
+            return factor_ptr;
+
     return nullptr;
 }
 
@@ -213,6 +218,11 @@ FactorBasePtr FrameBase::getFactorOf(const ProcessorBasePtr _processor_ptr) cons
     for (const FactorBasePtr& factor_ptr : getConstrainedByList())
         if (factor_ptr->getProcessor() == _processor_ptr)
             return factor_ptr;
+
+    for (const FactorBasePtr& factor_ptr : getFactorList())
+        if (factor_ptr->getProcessor() == _processor_ptr)
+            return factor_ptr;
+
     return nullptr;
 }