diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 76c90a4569bd9585c09b92fc89e8ace80e3b11c2..cf2d49d942d960b8b4b42fc4f09415b54fa22fc5 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -1910,14 +1910,6 @@ bool Problem::check(int verbose_level) const
                         	if (found_here) cout << " Fo" << Fo->id();
                             found 		= found || found_here;
 
-                            // Find in Captures of the constrained Frame
-                            for (auto FoC : Fo->getCaptureList())
-                            {
-                            	sb_vec 		= FoC->getStateBlockVec();
-                            	found_here 	= (std::find(sb_vec.begin(), sb_vec.end(), sb) != sb_vec.end());
-                            	if (found_here) cout << " FoC" << FoC->id();
-                            	found 		= found || found_here;
-                            }
                         }
 
                         // find in constrained Capture
@@ -1929,6 +1921,16 @@ bool Problem::check(int verbose_level) const
                             found 		= found || found_here;
                         }
 
+                        // Find in other Captures of the constrained Frame
+                        if (!found_here && Fo)
+                            for (auto FoC : Fo->getCaptureList())
+                            {
+                            	sb_vec 		= FoC->getStateBlockVec();
+                            	found_here 	= (std::find(sb_vec.begin(), sb_vec.end(), sb) != sb_vec.end());
+                            	if (found_here) cout << " FoC" << FoC->id();
+                            	found 		= found || found_here;
+                            }
+
                         // find in constrained Feature
                         if (fo)
                         {