diff --git a/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C b/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C
index 4a88c3d..b592b51 100644
--- a/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C
+++ b/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C
@@ -303,6 +303,7 @@ void Foam::isoSurfaceCell::generateTriPoints
 ) const
 {
     tetMatcher tet;
+    label countNotFoundTets = 0;
 
     forAll(mesh_.cells(), cellI)
     {
@@ -404,7 +405,15 @@ void Foam::isoSurfaceCell::generateTriPoints
 
                     const label fp0 = mesh_.tetBasePtIs()[faceI];
 
+                    //skip undefined tetrahedral cells
+                    if(fp0 == -1)
+                    {
+                        countNotFoundTets++;
+                        continue;
+                    }
+
                     label fp = f.fcIndex(fp0);
+
                     for (label i = 2; i < f.size(); i++)
                     {
                         label nextFp = f.fcIndex(fp);
@@ -485,6 +494,15 @@ void Foam::isoSurfaceCell::generateTriPoints
             }
         }
     }
+    
+    if(countNotFoundTets>0)
+    {
+        WarningIn("Foam::isoSurfaceCell::generateTriPoints(...) const")
+            << "Did not find " << countNotFoundTets
+            << " tet base point indices, which has likelly lead to incomplete"
+            << " sample data. "
+            << endl;
+    }
 
     triPoints.shrink();
     triMeshCells.shrink();
