diff --git a/applications/utilities/mesh/manipulation/checkMesh/writeFields.C b/applications/utilities/mesh/manipulation/checkMesh/writeFields.C
index e9c4956ad3c7f54962c091fd7ed1b1be939f4645..7f1f0f3f377b77735c11331caf5a6ec885fd9034 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/writeFields.C
+++ b/applications/utilities/mesh/manipulation/checkMesh/writeFields.C
@@ -180,7 +180,7 @@ void Foam::writeFields
         (
             radToDeg
             (
-                Foam::acos(min(scalar(1), faceOrthogonality))
+                Foam::acos(min(scalar(1), max(scalar(-1), faceOrthogonality)))
             )
         );
 
diff --git a/src/finiteVolume/fvMesh/fvGeometryScheme/basic/basicFvGeometryScheme.C b/src/finiteVolume/fvMesh/fvGeometryScheme/basic/basicFvGeometryScheme.C
index 422f6e9059b932e7f1d8625c0aeed86a948af772..cd24048b6be281d4157010cefd1ff39e55ba7ab7 100644
--- a/src/finiteVolume/fvMesh/fvGeometryScheme/basic/basicFvGeometryScheme.C
+++ b/src/finiteVolume/fvMesh/fvGeometryScheme/basic/basicFvGeometryScheme.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2021 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -117,7 +117,15 @@ Foam::tmp<Foam::surfaceScalarField> Foam::basicFvGeometryScheme::weights() const
         // but the result will be poor.
         scalar SfdOwn = mag(Sf[facei] & (Cf[facei] - C[owner[facei]]));
         scalar SfdNei = mag(Sf[facei] & (C[neighbour[facei]] - Cf[facei]));
-        w[facei] = SfdNei/(SfdOwn + SfdNei);
+
+        if (mag(SfdOwn + SfdNei) > ROOTVSMALL)
+        {
+            w[facei] = SfdNei/(SfdOwn + SfdNei);
+        }
+        else
+        {
+            w[facei] = 0.5;
+        }
     }
 
     surfaceScalarField::Boundary& wBf = weights.boundaryFieldRef();
diff --git a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
index 0a0f9e27d17137bff050ac2d7a37bcfc9a8f8bdb..bfb3ebe215db8d565b2b03aaf51d451d181a81ec 100644
--- a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
+++ b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2021 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -101,14 +101,21 @@ void Foam::cellAspectRatio::calcAspectRatio()
         }
         sumA /= cFaces.size();
 
-        // Local length scale
-        const scalar length = cellVolumes[celli]/sumA;
+        aRatio[celli] = 1.0;
+        if (sumA > ROOTVSMALL)
+        {
+            // Local length scale
+            const scalar length = cellVolumes[celli]/sumA;
 
-        // Max edge length
-        maxMag = Foam::sqrt(maxMag);
+            if (length > ROOTVSMALL)
+            {
+                // Max edge length
+                maxMag = Foam::sqrt(maxMag);
 
-        //aRatio[celli] = Foam::sqrt(4.0/3.0)*maxMag/length;
-        aRatio[celli] = 2.0*maxMag/length;
+                //aRatio[celli] = Foam::sqrt(4.0/3.0)*maxMag/length;
+                aRatio[celli] = 2.0*maxMag/length;
+            }
+        }
     }
 
     if (debug)