diff --git a/src/meshTools/meshToMesh/meshToMesh.C b/src/meshTools/meshToMesh/meshToMesh.C
index dd2d6b1..cb38291 100644
--- a/src/meshTools/meshToMesh/meshToMesh.C
+++ b/src/meshTools/meshToMesh/meshToMesh.C
@@ -287,12 +287,32 @@ void Foam::meshToMesh::constructFromCuttingPatches
         const word& tgtPatchName = iter.key();
         const word& srcPatchName = iter();
 
-        srcToTgtPatchIDs_[i++] =
-            labelPair
-            (
-                srcMesh_.boundaryMesh().findPatchID(srcPatchName),
-                tgtMesh_.boundaryMesh().findPatchID(tgtPatchName)
-            );
+	const label tgtPatchi =
+            tgtMesh_.boundaryMesh().findPatchID(tgtPatchName);
+        const label srcPatchi =
+            srcMesh_.boundaryMesh().findPatchID(srcPatchName);
+
+	if (tgtPatchi == -1)
+	{
+	    FatalErrorInFunction
+		<< "Patch " << tgtPatchName
+		<< " not found in target mesh. "
+		<< "Available target patches are "
+		<< tgtMesh_.boundaryMesh().names()
+		<< exit(FatalError);
+	}
+
+	if (srcPatchi == -1)
+	{
+	    FatalErrorInFunction
+		<< "Patch " << srcPatchName
+		<< " not found in source mesh. "
+		<< "Available source patches are "
+		<< srcMesh_.boundaryMesh().names()
+		<< exit(FatalError);
+	}
+
+        srcToTgtPatchIDs_[i++] = labelPair(srcPatchi, tgtPatchi);
     }
 
     // calculate patch addressing and weights
