Index: configure.ac
===================================================================
--- configure.ac	(revision c0bccbecd01c28def7f751995f67ff1a54f4c1c4)
+++ configure.ac	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
@@ -153,4 +153,5 @@
 AC_CONFIG_FILES([
 	src/unittests/Makefile
+	src/Actions/unittests/Makefile
 	src/Patterns/unittests/Makefile
 ])
Index: src/Actions/unittests/ActionRegistryUnitTest.cpp
===================================================================
--- src/Actions/unittests/ActionRegistryUnitTest.cpp	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
+++ src/Actions/unittests/ActionRegistryUnitTest.cpp	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
@@ -0,0 +1,63 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ActionRegistryUnitTest.cpp
+ *
+ *  Created on: Dec 15, 2010
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "ActionRegistryUnitTest.hpp"
+
+#include <typeinfo>
+
+#include "Actions/ActionRegistry.hpp"
+#include "Actions/ActionTraits.hpp"
+#include "Actions/OptionRegistry.hpp"
+#include "Actions/OptionTrait.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+/********************************************** Test classes **************************************/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( ActionRegistryTest );
+
+
+void ActionRegistryTest::setUp()
+{};
+
+
+void ActionRegistryTest::tearDown()
+{};
+
+void ActionRegistryTest::CheckDoublyUsedShortforms()
+{
+  std::map <std::string, std::string> result;
+
+  ActionRegistry &AR = ActionRegistry::getInstance();
+  for (ActionRegistry::const_iterator iter = AR.getBeginIter(); iter != AR.getEndIter(); ++iter)
+    if ((iter->second)->Traits.hasShortForm()) {
+      ASSERT(result.find((iter->second)->Traits.getShortForm()) == result.end(),
+          "Short form "+toString((iter->second)->Traits.getShortForm())+
+          " for action "+toString(iter->first)+" already present from "+
+          std::string(result[(iter->second)->Traits.getShortForm()])+"!");
+      result[(iter->second)->Traits.getShortForm()] = (iter->second)->getName();
+    }
+}
Index: src/Actions/unittests/ActionRegistryUnitTest.hpp
===================================================================
--- src/Actions/unittests/ActionRegistryUnitTest.hpp	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
+++ src/Actions/unittests/ActionRegistryUnitTest.hpp	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
@@ -0,0 +1,30 @@
+/*
+ * ActionRegistryUnitTest.hpp
+ *
+ *  Created on: Dec 15, 2010
+ *      Author: heber
+ */
+
+#ifndef ACTIONREGISTRYUNITTEST_HPP_
+#define ACTIONREGISTRYUNITTEST_HPP_
+
+#include <cppunit/extensions/HelperMacros.h>
+
+
+/********************************************** Test classes **************************************/
+
+class ActionRegistryTest : public CppUnit::TestFixture
+{
+    CPPUNIT_TEST_SUITE( ActionRegistryTest) ;
+    CPPUNIT_TEST ( CheckDoublyUsedShortforms );
+    CPPUNIT_TEST_SUITE_END();
+
+public:
+      void setUp();
+      void tearDown();
+      void CheckDoublyUsedShortforms();
+
+private:
+};
+
+#endif /* ACTIONREGISTRYUNITTEST_HPP_ */
Index: src/Actions/unittests/Makefile.am
===================================================================
--- src/Actions/unittests/Makefile.am	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
+++ src/Actions/unittests/Makefile.am	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
@@ -0,0 +1,38 @@
+# PLEASE adhere to the alphabetical ordering in this Makefile!
+# Also indentation by a single tab
+
+INCLUDES = -I$(top_srcdir)/src
+
+AM_LDFLAGS = $(CPPUNIT_LIBS) -ldl
+AM_CXXFLAGS = $(CPPUNIT_CFLAGS)
+AM_CPPFLAGS = ${BOOST_CPPFLAGS}
+
+TESTS = \
+  ActionRegistryUnitTest
+
+check_PROGRAMS = $(TESTS) 
+noinst_PROGRAMS = $(TESTS)
+
+BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_SYSTEM_LIB) $(BOOST_THREAD_LIB)
+GSLLIBS = \
+	../../LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
+	../../Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
+	../../Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
+	$(BOOST_LIB)
+ALLLIBS = \
+	../../UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \
+	../../Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
+	${PARSERLIBS} \
+	../../libMolecuilder-@MOLECUILDER_API_VERSION@.la \
+	${GSLLIBS}
+
+PARSERLIBS = ../../Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la
+UILIBS = ../../UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la  
+
+
+ActionRegistryUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	ActionRegistryUnitTest.cpp \
+	ActionRegistryUnitTest.hpp
+ActionRegistryUnitTest_LDADD = ${ALLLIBS}
+
+#AUTOMAKE_OPTIONS = parallel-tests
Index: src/unittests/Makefile.am
===================================================================
--- src/unittests/Makefile.am	(revision c0bccbecd01c28def7f751995f67ff1a54f4c1c4)
+++ src/unittests/Makefile.am	(revision deddf60dcef024b8000d9a49d0357ae4601a46de)
@@ -3,4 +3,5 @@
 
 SUBDIRS = \
+	../Actions/unittests \
 	../Patterns/unittests
 
@@ -72,4 +73,5 @@
 
 TESTSOURCES = \
+  ../Actions/unittests/ActionRegistryUnitTest.cpp \
   ActOnAllUnitTest.cpp \
   ActionSequenceTest.cpp \
@@ -112,4 +114,5 @@
 
 TESTHEADERS = \
+  ../Actions/unittests/ActionRegistryUnitTest.hpp \
   ActOnAllUnitTest.hpp \
   ActionSequenceTest.hpp \
