diff --git a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C
index 25f1b63e5b3236d539ff2b53b299092a72d7e745..f84279514175bb7b1f7274b31f0287bde6837782 100644
--- a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C
+++ b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C
@@ -127,16 +127,24 @@ Foam::fileName Foam::ensightSurfaceReader::replaceMask
 (
     const fileName& fName,
     const label timeIndex
-) const
+)
 {
     fileName result(fName);
-    std::ostringstream oss;
 
-    label nMask = stringOps::count(fName, '*');
-    const std::string maskStr(nMask, '*');
-    oss << std::setfill('0') << std::setw(nMask) << timeIndex;
-    const word indexStr = oss.str();
-    result.replace(maskStr, indexStr);
+    const auto nMask = stringOps::count(fName, '*');
+
+    // If there are any '*' chars, they are assumed to be contiguous
+    // Eg, data/******/geometry
+
+    if (nMask)
+    {
+        std::ostringstream oss;
+        oss << std::setfill('0') << std::setw(nMask) << timeIndex;
+
+        const std::string maskStr(nMask, '*');
+        const std::string indexStr = oss.str();
+        result.replace(maskStr, indexStr);
+    }
 
     return result;
 }
diff --git a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H
index da725dc315efbae37d8f50fda3a759f4798dd5ca..ec120d79230d03d2cd140cbaefcb9cb0518002cc 100644
--- a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H
+++ b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H
@@ -112,12 +112,12 @@ protected:
         //- Read and check a section header
         void debugSection(const word& expected, IFstream& is) const;
 
-        //- Replace the mask with an 0 padded string
-        fileName replaceMask
+        //- Replace the '*' mask chars with a 0 padded string.
+        static fileName replaceMask
         (
             const fileName& fName,
             const label timeIndex
-        ) const;
+        );
 
         //- Read (and discard) geometry file header.
         //  \return information about node/element id handling
@@ -158,10 +158,11 @@ public:
     //- Runtime type information
     TypeName("ensight");
 
+
     // Constructors
 
         //- Construct from fileName
-        ensightSurfaceReader(const fileName& fName);
+        explicit ensightSurfaceReader(const fileName& fName);
 
 
     //- Destructor