diff --git a/preprocessor/ConfigFile.cc b/preprocessor/ConfigFile.cc
index 21276dd91b22b59ba4c99cbe2a910413336715cb..2d0e34999547918164dd253215dc0a01e84c545b 100644
--- a/preprocessor/ConfigFile.cc
+++ b/preprocessor/ConfigFile.cc
@@ -220,10 +220,19 @@ ConfigFile::getConfigFileInfo(const string &config_file)
           trim(tokenizedLine.back());
 
           if (inHooks)
-            {
-              if (!tokenizedLine.front().compare("GlobalInitFile"))
+            if (!tokenizedLine.front().compare("GlobalInitFile"))
+              if (global_init_file.empty())
                 global_init_file = tokenizedLine.back();
-            }
+              else
+                {
+                  cerr << "ERROR: May not have more than one GlobalInitFile option in [hooks] block." << endl;
+                  exit(EXIT_FAILURE);
+                }
+            else
+              {
+                cerr << "ERROR: Unrecognized option " << tokenizedLine.front() << " in [hooks] block." << endl;
+                exit(EXIT_FAILURE);
+              }
           else
             if (!tokenizedLine.front().compare("Name"))
               name = tokenizedLine.back();