diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
index 1d9ecc0bc74c645fff772d7ac8392adf8ae38149..cd0ebafc3a431f4934ba2890fdaca693822b3017 100644
--- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
+++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
@@ -2450,17 +2450,17 @@ void Foam::autoLayerDriver::mergePatchFacesUndo
     const dictionary& motionDict
 )
 {
-    scalar minCos =
-        Foam::cos(degToRad(layerParams.featureAngle()));
+    // Clip to 45 degrees
+    scalar planarAngle = min(45.0, layerParams.featureAngle());
+    scalar minCos = Foam::cos(degToRad(planarAngle));
 
-    scalar concaveCos =
-        Foam::cos(degToRad(layerParams.concaveAngle()));
+    scalar concaveCos = Foam::cos(degToRad(layerParams.concaveAngle()));
 
     Info<< nl
         << "Merging all faces of a cell" << nl
         << "---------------------------" << nl
         << "    - which are on the same patch" << nl
-        << "    - which make an angle < " << layerParams.featureAngle()
+        << "    - which make an angle < " << planarAngle
         << " degrees"
         << nl
         << "      (cos:" << minCos << ')' << nl
@@ -2478,7 +2478,7 @@ void Foam::autoLayerDriver::mergePatchFacesUndo
         concaveCos,
         meshRefiner_.meshedPatches(),
         motionDict,
-        labelList(mesh.nFaces() -1)
+        labelList(mesh.nFaces(), -1)
     );
 
     nChanged += meshRefiner_.mergeEdgesUndo(minCos, motionDict);