diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 154fd47227f7dbf028e65417b885d9e05fe72e18..064a03a4dc5b6e06e7c1b3532bfe7cbaa292723a 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -1731,14 +1731,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
@@ -1750,6 +1742,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)
                         {