diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index 407828e0389db1790da490ef5d54ab148c05b810..a20e5da42bc0a62672cb60d164fa779a9b2f18c8 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -952,8 +952,20 @@ int main(int argc, char *argv[])
 
     forAllConstIter(dictionary, dict, iter)
     {
+        if (!iter().isDict())
+        {
+            continue;
+        }
+
         const dictionary& surfaceDict = iter().dict();
 
+        if (surfaceDict.found("extractionMethod"))
+        {
+            continue;
+        }
+
+        const word extractionMethod = surfaceDict.lookup("extractionMethod");
+
         const fileName surfFileName = iter().keyword();
         const fileName sFeatFileName = surfFileName.lessExt().name();
 
@@ -971,8 +983,6 @@ int main(int argc, char *argv[])
         const Switch closeness =
             surfaceDict.lookupOrDefault<Switch>("closeness", "off");
 
-        const word extractionMethod = surfaceDict.lookup("extractionMethod");
-
 
         Info<< nl << "Feature line extraction is only valid on closed manifold "
             << "surfaces." << endl;