Index: src/UIElements/CommandLineUI/CommandLineParser.cpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineParser.cpp	(revision 7b38d3ce5a4b0f857769b4fa0009f95a8f574d78)
+++ src/UIElements/CommandLineUI/CommandLineParser.cpp	(revision fe02bf3a9081343f5898f5348bfea7aa2dd6e3de)
@@ -147,5 +147,7 @@
 //        std::cout << std::endl;
 
-        AddOptionToParser(currentOption, (CmdParserLookup["options"]));
+        AddOptionToParser(currentOption, (CmdParserLookup["options"]),
+            (optioniter->first == *iter) ?
+                true : false);
 
         AlreadyAddedOptionNames.insert(optioniter->first);
@@ -174,5 +176,8 @@
       ASSERT(CmdParserLookup.find(CurrentTrait.getMenuName()) != CmdParserLookup.end(),
           "CommandLineParser: boost::program_options::options_description for this Action not present.");
-      AddOptionToParser(dynamic_cast<const OptionTrait * const>(&CurrentTrait),(CmdParserLookup[CurrentTrait.getMenuName()]));
+      AddOptionToParser(
+          dynamic_cast<const OptionTrait * const>(&CurrentTrait),
+          (CmdParserLookup[CurrentTrait.getMenuName()]),
+          false);
     }
   }
@@ -191,6 +196,12 @@
  * \param *currentOption pointer to Action/Option to add
  * \param *OptionList program_options list to add to
- */
-void CommandLineParser::AddOptionToParser(const OptionTrait * const currentOption, po::options_description* OptionList)
+ * \param _DefaultAsImplicit whether to add a default value as default_value or
+ *        as implicit_value (default = option token present or not, implicit =
+          option token present but not necessarily followed by argument)
+ */
+void CommandLineParser::AddOptionToParser(
+    const OptionTrait * const currentOption, 
+    po::options_description* OptionList,
+    const bool _DefaultAsImplicit)
 {
   // check whether dynamic_cast in Init() suceeded
@@ -212,5 +223,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < bool >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < bool >()->implicit_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                      po::value < bool >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str()))) :
                   po::value < bool >(),
                   currentOption->getDescription().c_str())
@@ -239,5 +252,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < int >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < int >()->implicit_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                      po::value < int >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str()))) :
                   po::value < int >(),
                   currentOption->getDescription().c_str())
@@ -257,5 +272,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < unsigned int >()->default_value(boost::lexical_cast<unsigned int>(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < unsigned int >()->implicit_value(boost::lexical_cast<unsigned int>(currentOption->getDefaultValue().c_str())) :
+                      po::value < unsigned int >()->default_value(boost::lexical_cast<unsigned int>(currentOption->getDefaultValue().c_str()))) :
                   po::value < unsigned int >(),
                   currentOption->getDescription().c_str())
@@ -275,5 +292,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < double >()->default_value(boost::lexical_cast<double>(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < double >()->implicit_value(boost::lexical_cast<double>(currentOption->getDefaultValue().c_str())) :
+                      po::value < double >()->default_value(boost::lexical_cast<double>(currentOption->getDefaultValue().c_str()))) :
                   po::value < double >(),
                   currentOption->getDescription().c_str())
@@ -293,5 +312,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < std::string >()->default_value(currentOption->getDefaultValue()) :
+                  (_DefaultAsImplicit ? 
+                      po::value < std::string >()->implicit_value(currentOption->getDefaultValue()) :
+                      po::value < std::string >()->default_value(currentOption->getDefaultValue())) :
                   po::value < std::string >(),
                   currentOption->getDescription().c_str())
@@ -347,5 +368,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < int >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < int >()->implicit_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str())) :
+                      po::value < int >()->default_value(boost::lexical_cast<int>(currentOption->getDefaultValue().c_str()))) :
                   po::value < int >(),
                   currentOption->getDescription().c_str())
@@ -383,5 +406,7 @@
         (currentOption->getKeyAndShortForm().c_str(),
             currentOption->hasDefaultValue() ?
-                  po::value < std::string >()->default_value(boost::lexical_cast< std::string >(currentOption->getDefaultValue().c_str())) :
+                  (_DefaultAsImplicit ? 
+                      po::value < std::string >()->implicit_value(boost::lexical_cast< std::string >(currentOption->getDefaultValue().c_str())) :
+                      po::value < std::string >()->default_value(boost::lexical_cast< std::string >(currentOption->getDefaultValue().c_str()))) :
                   po::value < std::string >(),
                   currentOption->getDescription().c_str())
@@ -438,5 +463,6 @@
     po::store(po::command_line_parser(argc,argv).options(cmdline_options).run(), vm);
   } catch (std::exception &e) {
-    std::cerr << "Something went wrong with parsing the command-line arguments." << std::endl;
+    std::cerr << "Something went wrong with parsing the command-line arguments: " 
+        << e.what() << std::endl;
     World::getInstance().setExitFlag(134);
 #ifdef HAVE_ACTION_THREAD
Index: src/UIElements/CommandLineUI/CommandLineParser.hpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineParser.hpp	(revision 7b38d3ce5a4b0f857769b4fa0009f95a8f574d78)
+++ src/UIElements/CommandLineUI/CommandLineParser.hpp	(revision fe02bf3a9081343f5898f5348bfea7aa2dd6e3de)
@@ -90,5 +90,8 @@
 
   // adds options to the parser
-  void AddOptionToParser(const MoleCuilder::OptionTrait * const currentOption, po::options_description* OptionList);
+  void AddOptionToParser(
+      const MoleCuilder::OptionTrait * const currentOption, 
+      po::options_description* OptionList,
+      const bool _DefaultAsImplicit);
 
   // creates a map from short forms to action tokens needed to parse command line
