diff --git a/preprocessor/Statement.cc b/preprocessor/Statement.cc
index b72e4e24d89496c079cd4d59efa5f527de4dc81f..db02db9392fe89d54d592b7b37ddf01c32c9b3b4 100644
--- a/preprocessor/Statement.cc
+++ b/preprocessor/Statement.cc
@@ -137,9 +137,18 @@ OptionsList::writeOutput(ostream &output, const string &option_group) const
 {
   // Initialize option_group as an empty struct iff the field does not exist!
   unsigned idx = option_group.find_last_of(".");
-  output << "if ~isfield(" << option_group.substr(0,idx) << ",'" << option_group.substr(idx+1) << "')" << endl;
-  output << "    " << option_group << " = struct();" << endl;
-  output << "end" << endl;
+  if (idx<UINT_MAX)
+    {
+      output << option_group << endl;
+      output << idx << endl;
+      output << "if ~isfield(" << option_group.substr(0,idx) << ",'" << option_group.substr(idx+1) << "')" << endl;
+      output << "    " << option_group << " = struct();" << endl;
+      output << "end" << endl;
+    }
+  else
+    {
+      output << option_group << " = struct();" << endl;
+    }
 
   for (num_options_t::const_iterator it = num_options.begin();
        it != num_options.end(); it++)