Index: src/Actions/CommandAction/HelpAction.cpp
===================================================================
--- src/Actions/CommandAction/HelpAction.cpp	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/Actions/CommandAction/HelpAction.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -63,5 +63,5 @@
   std::cout << std::endl;
   // print list of actions or its options
-  if (params.actionname.get() == "none") {
+  if (params.actionname.get() == std::string("none")) {
     // print list of all Actions
     std::cout << "Here is a list of all available Actions:" << std::endl;
Index: src/Actions/CommandAction/HelpAction.def
===================================================================
--- src/Actions/CommandAction/HelpAction.def	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/Actions/CommandAction/HelpAction.def	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -8,5 +8,6 @@
 // all includes and forward declarations necessary for non-integral types below
 
-
+#include "Parameters/Validators/DiscreteValidator.hpp"
+#include "Parameters/Validators/Ops_Validator.hpp"
 #include "Parameters/Validators/Specific/ActionNameValidator.hpp"
 
@@ -20,5 +21,8 @@
 #define paramreferences (actionname)
 #define paramvalids \
-(ActionNameValidator())
+(DiscreteValidator<std::string>(std::vector<std::string>(1, std::string("none"))) || ActionNameValidator())
+// NOTE: The _default_ value MUST NOT require validation via ActionNameValidator!
+// This will trigger an infinite loop of ActionRegistry::fillRegistry() calls as ActionRegistry is
+// at the time of the filling on of the default values not yet completely constructed!
 
 #undef statetypes
Index: src/Actions/unittests/Makefile.am
===================================================================
--- src/Actions/unittests/Makefile.am	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/Actions/unittests/Makefile.am	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -32,4 +32,5 @@
 	../Actions/unittests/ActionRegistryUnitTest.cpp \
 	../Actions/unittests/ActionRegistryUnitTest.hpp \
+	../Parameters/unittests/stubs/ActionNameValidatorStub.cpp \
 	../Parameters/unittests/stubs/BoxLengthValidatorStub.cpp \
 	../Parameters/unittests/stubs/BoxVectorValidatorStub.cpp \
@@ -41,4 +42,5 @@
 	../Actions/unittests/ActionSequenceUnitTest.hpp \
 	../Actions/unittests/stubs/DummyUI.hpp \
+	../Parameters/unittests/stubs/ActionNameValidatorStub.cpp \
 	../Parameters/unittests/stubs/BoxLengthValidatorStub.cpp \
 	../Parameters/unittests/stubs/BoxVectorValidatorStub.cpp \
Index: src/Parameters/Makefile.am
===================================================================
--- src/Parameters/Makefile.am	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/Parameters/Makefile.am	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -4,4 +4,5 @@
 
 PARAMETERSOURCE = \
+	Parameters/Validators/Specific/ActionNameValidator.cpp \
 	Parameters/Validators/Specific/BoundaryConditionValidator.cpp \
 	Parameters/Validators/Specific/BoxLengthValidator.cpp \
Index: src/Parameters/Validators/Specific/ActionNameValidator.cpp
===================================================================
--- src/Parameters/Validators/Specific/ActionNameValidator.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
+++ src/Parameters/Validators/Specific/ActionNameValidator.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -0,0 +1,51 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ActionNameValidator.cpp
+ *
+ *  Created on: May 14, 2012
+ *      Author: ankele
+ */
+
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "ActionNameValidator.hpp"
+
+#include "Actions/ActionRegistry.hpp"
+
+bool ActionNameValidator::isValid(const std::string & _value) const
+{
+  return MoleCuilder::ActionRegistry::getInstance().isActionPresentByName(_value);
+}
+
+bool ActionNameValidator::operator==(const Validator<std::string> &_instance) const
+{
+  const ActionNameValidator *inst =
+      dynamic_cast<const ActionNameValidator *>(&_instance);
+  if (inst)
+    return true;
+  else
+    return false;
+}
+
+Validator< std::string >* ActionNameValidator::clone() const
+{
+  Validator< std::string > *inst =
+      new ActionNameValidator();
+  return inst;
+}
+
+
+
+
Index: src/Parameters/Validators/Specific/ActionNameValidator.hpp
===================================================================
--- src/Parameters/Validators/Specific/ActionNameValidator.hpp	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/Parameters/Validators/Specific/ActionNameValidator.hpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -17,11 +17,15 @@
 #include <string>
 
-#include "Parameters/Validators/DummyValidator.hpp"
+#include "Parameters/Validators/Validator.hpp"
 
 /** This validators checks whether the value matches one of the available Action
  * names.
  */
-class ActionNameValidator : public DummyValidator<std::string>
-{};
+class ActionNameValidator : public Validator<std::string>
+{
+  bool isValid(const std::string & _value) const;
+  bool operator==(const Validator<std::string> &_instance) const;
+  Validator< std::string >* clone() const;
+};
 
 
Index: src/Parameters/unittests/stubs/ActionNameValidatorStub.cpp
===================================================================
--- src/Parameters/unittests/stubs/ActionNameValidatorStub.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
+++ src/Parameters/unittests/stubs/ActionNameValidatorStub.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -0,0 +1,49 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ActionNameValidatorStub.cpp
+ *
+ *  Created on: Jun 06, 2012
+ *      Author: heber
+ */
+
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Parameters/Validators/Specific/ActionNameValidator.hpp"
+
+bool ActionNameValidator::isValid(const std::string & _value) const
+{
+  return true;
+}
+
+bool ActionNameValidator::operator==(const Validator<std::string> &_instance) const
+{
+  const ActionNameValidator *inst =
+      dynamic_cast<const ActionNameValidator *>(&_instance);
+  if (inst)
+    return true;
+  else
+    return false;
+}
+
+Validator< std::string >* ActionNameValidator::clone() const
+{
+  Validator< std::string > *inst =
+      new ActionNameValidator();
+  return inst;
+}
+
+
+
+
Index: src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp
===================================================================
--- src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -28,4 +28,6 @@
 #include "Actions/ActionTrait.hpp"
 #include "UIElements/CommandLineUI/CommandLineParser.hpp"
+#include "World.hpp"
+#include "WorldTime.hpp"
 
 #include "CommandLineParser_ActionRegistry_ConsistencyUnitTest.hpp"
@@ -45,5 +47,5 @@
 void CommandLineParser_ActionRegistry_ConsistencyTest::setUp()
 {
-  AR = ActionRegistry::getPointer();
+  CPPUNIT_ASSERT_NO_THROW(AR = ActionRegistry::getPointer());
   CLP = CommandLineParser::getPointer();
 };
@@ -54,4 +56,9 @@
   CommandLineParser::purgeInstance();
   ActionRegistry::purgeInstance();
+  // these come about because of the validators accessing them instantiated
+  // by ActionRegistry. In ActionRegistryUnitTest we used stubs for them but
+  // here we care whether default values are actually valid.
+  World::purgeInstance();
+  WorldTime::purgeInstance();
 };
 
Index: src/UIElements/Menu/unittests/MenuDescription_ActionRegistry_ConsistencyUnitTest.cpp
===================================================================
--- src/UIElements/Menu/unittests/MenuDescription_ActionRegistry_ConsistencyUnitTest.cpp	(revision c31fbd0febffa9999491bdd19255e928ffff9276)
+++ src/UIElements/Menu/unittests/MenuDescription_ActionRegistry_ConsistencyUnitTest.cpp	(revision ab2ebe1421dd395490c1c5ca22b31a48db632d96)
@@ -26,4 +26,6 @@
 #include "Actions/ActionRegistry.hpp"
 #include "Actions/ActionTrait.hpp"
+#include "World.hpp"
+#include "WorldTime.hpp"
 
 #include "MenuDescription_ActionRegistry_ConsistencyUnitTest.hpp"
@@ -43,5 +45,5 @@
 void MenuDescription_ActionRegistry_ConsistencyTest::setUp()
 {
-  AR = ActionRegistry::getPointer();
+  CPPUNIT_ASSERT_NO_THROW(AR = ActionRegistry::getPointer());
 };
 
@@ -50,4 +52,9 @@
 {
   ActionRegistry::purgeInstance();
+  // these come about because of the validators accessing them instantiated
+  // by ActionRegistry. In ActionRegistryUnitTest we used stubs for them but
+  // here we care whether default values are actually valid.
+  World::purgeInstance();
+  WorldTime::purgeInstance();
 };
 
