diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index b3b68fc87251bdae1b4b3e5dc1c247590d531e6e..87c8c30f03eba0aa22db99281531f8ebf4409f45 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -480,6 +480,7 @@ Foam::argList::argList
 
     // Check arguments and options, argv[0] was already handled
     int nArgs = 1;
+    HashTable<string>::const_iterator optIter;
     for (int argI = 1; argI < args_.size(); ++argI)
     {
         argListStr_ += ' ';
@@ -489,15 +490,20 @@ Foam::argList::argList
         {
             const char *optionName = &args_[argI][1];
 
-            if
+            if (!*optionName)
+            {
+                Warning
+                    <<"Ignoring lone '-' on the command-line" << endl;
+            }
+            else if
             (
                 (
-                    validOptions.found(optionName)
-                 && !validOptions[optionName].empty()
+                    (optIter = validOptions.cfind(optionName)).found()
+                 && !optIter.object().empty()
                 )
              || (
-                    validParOptions.found(optionName)
-                 && !validParOptions[optionName].empty()
+                    (optIter = validParOptions.cfind(optionName)).found()
+                 && !optIter.object().empty()
                 )
             )
             {