Index: /code/branches/core6/src/libraries/core/ClassFactory.h
===================================================================
--- /code/branches/core6/src/libraries/core/ClassFactory.h	(revision 9555)
+++ /code/branches/core6/src/libraries/core/ClassFactory.h	(revision 9556)
@@ -55,5 +55,5 @@
         public:
             virtual ~Factory() {};
-            virtual BaseObject* fabricate(BaseObject* creator) = 0;
+            virtual OrxonoxClass* fabricate(BaseObject* creator) = 0;
     };
 
@@ -82,7 +82,7 @@
                 @return The new object
             */
-            inline BaseObject* fabricate(BaseObject* creator)
+            inline OrxonoxClass* fabricate(BaseObject* creator)
             {
-                return static_cast<BaseObject*>(new T(creator));
+                return static_cast<OrxonoxClass*>(new T(creator));
             }
     };
Index: /code/branches/core6/src/libraries/core/Identifier.cc
===================================================================
--- /code/branches/core6/src/libraries/core/Identifier.cc	(revision 9555)
+++ /code/branches/core6/src/libraries/core/Identifier.cc	(revision 9556)
@@ -198,5 +198,5 @@
             if (it->second->hasFactory())
             {
-                BaseObject* temp = it->second->fabricate(0);
+                OrxonoxClass* temp = it->second->fabricate(0);
                 temp->destroy();
             }
@@ -234,9 +234,9 @@
         @return The new object
     */
-    BaseObject* Identifier::fabricate(BaseObject* creator)
+    OrxonoxClass* Identifier::fabricate(BaseObject* creator)
     {
         if (this->factory_)
         {
-            return this->factory_->fabricate(creator); // We have to return a BaseObject, because we don't know the exact type.
+            return this->factory_->fabricate(creator);
         }
         else
Index: /code/branches/core6/src/libraries/core/Identifier.h
===================================================================
--- /code/branches/core6/src/libraries/core/Identifier.h	(revision 9555)
+++ /code/branches/core6/src/libraries/core/Identifier.h	(revision 9556)
@@ -56,5 +56,5 @@
     object->getIdentifier()->getName();                                         // returns "MyClass"
 
-    BaseObject* other = object->getIdentifier()->fabricate(0);                  // fabricates a new instance of MyClass
+    OrxonoxClass* other = object->getIdentifier()->fabricate(0);                // fabricates a new instance of MyClass
 
 
@@ -62,5 +62,5 @@
     ObjectListBase* objects = object->getIdentifier()->getObjects();            // get a pointer to the object-list
     int count;
-    for (Iterator<BaseObject> it = objects.begin(); it != objects.end(); ++it)  // iterate through the objects
+    for (Iterator<MyClass> it = objects.begin(); it != objects.end(); ++it)     // iterate through the objects
         ++count;
     orxout() << count << endl;                                                  // prints "2" because we created 2 instances of MyClass so far
@@ -133,5 +133,5 @@
             inline bool hasFactory() const { return (this->factory_ != 0); }
 
-            BaseObject* fabricate(BaseObject* creator);
+            OrxonoxClass* fabricate(BaseObject* creator);
 
             /// Returns true if the class can be loaded through XML.
Index: /code/branches/core6/src/libraries/core/SubclassIdentifier.h
===================================================================
--- /code/branches/core6/src/libraries/core/SubclassIdentifier.h	(revision 9555)
+++ /code/branches/core6/src/libraries/core/SubclassIdentifier.h	(revision 9556)
@@ -53,9 +53,9 @@
     There are two possibilities to create an object out of a SubclassIdentifier: Either you just use
     the @c fabricate() function of the assigned Identifier through the overloaded @c operator->, which
-    returns a @c BaseObject* pointer, or you use the function of SubclassIdentifier, this time by using
+    returns a @c OrxonoxClass* pointer, or you use the function of SubclassIdentifier, this time by using
     @c operator., which returns a @c BaseClass* pointer (@a BaseClass is the baseclass specified by the
     template argument):
     @code
-    identifier->fabricate();    // calls Identifier::fabricate(), creates a SubClass, returns a BaseObject* pointer
+    identifier->fabricate();    // calls Identifier::fabricate(), creates a SubClass, returns a OrxonoxClass* pointer
 
     identifier.fabricate();     // calls SubclassIdentifier::fabricate(), creates a SubClass, returns a BaseClass* pointer
@@ -165,5 +165,5 @@
             T* fabricate(BaseObject* creator) const
             {
-                BaseObject* newObject = this->identifier_->fabricate(creator);
+                OrxonoxClass* newObject = this->identifier_->fabricate(creator);
 
                 // Check if the creation was successful
Index: /code/branches/core6/src/libraries/core/XMLPort.cc
===================================================================
--- /code/branches/core6/src/libraries/core/XMLPort.cc	(revision 9555)
+++ /code/branches/core6/src/libraries/core/XMLPort.cc	(revision 9556)
@@ -89,5 +89,5 @@
                         orxout(verbose, context::xml) << object->getLoaderIndentation() << "fabricating " << child->Value() << "..." << endl;
 
-                        BaseObject* newObject = identifier->fabricate(object);
+                        BaseObject* newObject = orxonox_cast<BaseObject*>(identifier->fabricate(object));
                         newObject->setLoaderIndentation(object->getLoaderIndentation() + "  ");
 
Index: /code/branches/core6/src/libraries/network/synchronisable/Synchronisable.cc
===================================================================
--- /code/branches/core6/src/libraries/network/synchronisable/Synchronisable.cc	(revision 9555)
+++ /code/branches/core6/src/libraries/network/synchronisable/Synchronisable.cc	(revision 9556)
@@ -156,5 +156,5 @@
     }
     assert(getSynchronisable(header.getObjectID())==0);   //make sure no object with this id exists
-    BaseObject *bo = id->fabricate(creator);
+    BaseObject *bo = orxonox_cast<BaseObject*>(id->fabricate(creator));
     assert(bo);
     Synchronisable *no = orxonox_cast<Synchronisable*>(bo);
