diff --git a/src/meshTools/searchableSurface/searchableSphere.C b/src/meshTools/searchableSurface/searchableSphere.C
index 3d17b52d9fd2c6a392462b8a1c2ad73dfa46c18e..5c07f0b00d91adf6b551d102d803bea2da6d4df1 100644
--- a/src/meshTools/searchableSurface/searchableSphere.C
+++ b/src/meshTools/searchableSurface/searchableSphere.C
@@ -48,13 +48,15 @@ Foam::pointIndexHit Foam::searchableSphere::findNearest
     pointIndexHit info(false, sample, -1);
 
     const vector n(sample-centre_);
-    scalar magN = mag(n);
+    scalar magSqrN = magSqr(n);
 
-    if (nearestDistSqr > sqr(magN-radius_))
+    if (nearestDistSqr >= magSqrN)
     {
+        scalar magN = Foam::sqrt(magSqrN);
+
         if (magN < ROOTVSMALL)
         {
-            info.rawPoint() = centre_ + vector(1,0,0)/magN*radius_;
+            info.rawPoint() = centre_ + vector(1,0,0)*radius_;
         }
         else
         {