diff --git a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
index 72fc04f2c60e204c6da27b78e3149a3d8ee4aafb..cdab0733b19152a7f88321bfde80a8caab7c499c 100644
--- a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
+++ b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
@@ -1349,7 +1349,7 @@ void matchRegions
                 cellRegion,
                 nCellRegions,
                 clusterI,
-                1               // minimum overlap
+                clusterSizes[clusterI]  // require exact match
             );
 
             if (regionI != -1)
@@ -1736,8 +1736,8 @@ int main(int argc, char *argv[])
             }
         }
 
-        // Collect sets of zones into clusters. If no cluster is just an identity
-        // list (cluster 0 is cellZone 0 etc.)
+        // Collect sets of zones into clusters. If no cluster is just an
+        // identity list (cluster 0 is cellZone 0 etc.)
         wordList clusterNames;
         labelListList clusterToZones;
         labelList zoneToCluster;