Index: /code/branches/FICN/src/orxonox/core/Factory.cc
===================================================================
--- /code/branches/FICN/src/orxonox/core/Factory.cc	(revision 551)
+++ /code/branches/FICN/src/orxonox/core/Factory.cc	(revision 552)
@@ -38,30 +38,5 @@
 namespace orxonox
 {
-    Factory* Factory::pointer1_s;
-    Factory* Factory::pointer2_s;
-    Factory* Factory::pointer3_s;
-    Factory* Factory::pointer4_s;
-    Factory* Factory::pointer5_s = NULL; // Set the static member variable pointer5_s to zero
-
-    /**
-        @brief Checks if the pointer to the only Factory-object exists and creates it, if not.
-    */
-    void Factory::checkPointer()
-    {
-        if ((!pointer5_s) || (pointer1_s != pointer2_s) || (pointer2_s != pointer3_s) || (pointer3_s != pointer4_s) || (pointer4_s != pointer5_s))
-        {
-            std::cout << pointer1_s << std::endl;
-            std::cout << pointer2_s << std::endl;
-            std::cout << pointer3_s << std::endl;
-            std::cout << pointer4_s << std::endl;
-            std::cout << pointer5_s << std::endl;
-            pointer1_s = pointer2_s = pointer3_s = pointer4_s = pointer5_s = new Factory;
-            std::cout << pointer1_s << std::endl;
-            std::cout << pointer2_s << std::endl;
-            std::cout << pointer3_s << std::endl;
-            std::cout << pointer4_s << std::endl;
-            std::cout << pointer5_s << std::endl;
-        }
-    }
+    Factory* Factory::pointer_s = NULL; // Set the static member variable pointer_s to zero
 
     /**
@@ -73,5 +48,5 @@
         Factory::checkPointer();
 
-        return pointer1_s->identifierStringMap_[name];
+        return pointer_s->identifierStringMap_[name];
     }
 
@@ -84,5 +59,5 @@
         Factory::checkPointer();
 
-        return pointer1_s->identifierNetworkIDMap_[id];
+        return pointer_s->identifierNetworkIDMap_[id];
     }
 
@@ -96,6 +71,6 @@
         Factory::checkPointer();
 
-        pointer1_s->identifierStringMap_[name] = identifier;
-        pointer1_s->identifierNetworkIDMap_[identifier->getNetworkID()] = identifier;
+        pointer_s->identifierStringMap_[name] = identifier;
+        pointer_s->identifierNetworkIDMap_[identifier->getNetworkID()] = identifier;
     }
 
@@ -110,6 +85,6 @@
         Factory::checkPointer();
 
-        pointer1_s->identifierNetworkIDMap_.erase(oldID);
-        pointer1_s->identifierNetworkIDMap_[newID] = identifier;
+        pointer_s->identifierNetworkIDMap_.erase(oldID);
+        pointer_s->identifierNetworkIDMap_[newID] = identifier;
     }
 
@@ -123,7 +98,7 @@
         COUT(4) << "*** Factory -> Create class-hierarchy\n";
         std::map<std::string, Identifier*>::iterator it;
-        it = pointer1_s->identifierStringMap_.begin();
-        (*pointer1_s->identifierStringMap_.begin()).second->startCreatingHierarchy();
-        for (it = pointer1_s->identifierStringMap_.begin(); it != pointer1_s->identifierStringMap_.end(); ++it)
+        it = pointer_s->identifierStringMap_.begin();
+        (*pointer_s->identifierStringMap_.begin()).second->startCreatingHierarchy();
+        for (it = pointer_s->identifierStringMap_.begin(); it != pointer_s->identifierStringMap_.end(); ++it)
         {
             // To create the new branch of the class-hierarchy, we create a new object and delete it afterwards.
@@ -131,5 +106,5 @@
             delete temp;
         }
-        (*pointer1_s->identifierStringMap_.begin()).second->stopCreatingHierarchy();
+        (*pointer_s->identifierStringMap_.begin()).second->stopCreatingHierarchy();
         COUT(4) << "*** Factory -> Finished class-hierarchy creation\n";
     }
Index: /code/branches/FICN/src/orxonox/core/Factory.h
===================================================================
--- /code/branches/FICN/src/orxonox/core/Factory.h	(revision 551)
+++ /code/branches/FICN/src/orxonox/core/Factory.h	(revision 552)
@@ -42,11 +42,15 @@
             Factory(const Factory& factory) {}      // don't copy
             ~Factory() {}                           // don't delete
-            static void checkPointer();
 
-            static Factory* pointer1_s;                                         //!< The 1st pointer to the singleton
-            static Factory* pointer2_s;                                         //!< The 2nd pointer to the singleton
-            static Factory* pointer3_s;                                         //!< The 3rd pointer to the singleton
-            static Factory* pointer4_s;                                         //!< The 4th pointer to the singleton
-            static Factory* pointer5_s;                                         //!< The 5th pointer to the singleton
+            /**
+                @brief Checks if the pointer to the only Factory-object exists and creates it, if not.
+            */
+            inline static void checkPointer()
+            {
+                if (!pointer_s)
+                    pointer_s = new Factory;
+            }
+
+            static Factory* pointer_s;                                          //!< The pointer to the singleton
             std::map<std::string, Identifier*> identifierStringMap_;            //!< The map, mapping the name with the Identifier
             std::map<unsigned int, Identifier*> identifierNetworkIDMap_;        //!< The map, mapping the network ID with the Identifier
