Index: /code/branches/core3/src/core/ConfigValueContainer.cc
===================================================================
--- /code/branches/core3/src/core/ConfigValueContainer.cc	(revision 1609)
+++ /code/branches/core3/src/core/ConfigValueContainer.cc	(revision 1610)
@@ -60,7 +60,9 @@
         this->varname_ = varname;
         this->callback_ = 0;
+        this->bContainerIsNew_ = true;
+        this->bDoInitialCallback_ = false;
+        this->bAddedDescription_ = false;
 
         this->value_ = defvalue;
-        this->bAddedDescription_ = false;
         this->bIsVector_ = false;
 
@@ -82,7 +84,10 @@
         this->sectionname_ = identifier->getName();
         this->varname_ = varname;
+        this->callback_ = 0;
+        this->bContainerIsNew_ = true;
+        this->bDoInitialCallback_ = false;
+        this->bAddedDescription_ = false;
 
         this->valueVector_ = defvalue;
-        this->bAddedDescription_ = false;
         this->bIsVector_ = true;
 
Index: /code/branches/core3/src/core/ConfigValueContainer.h
===================================================================
--- /code/branches/core3/src/core/ConfigValueContainer.h	(revision 1609)
+++ /code/branches/core3/src/core/ConfigValueContainer.h	(revision 1610)
@@ -103,10 +103,19 @@
             ConfigValueContainer& getValue(T* value, C* object)
             {
-                if (this->callback_ && object)
-                {
+std::cout << "start: " << this->getName() << std::endl;
+                if ((this->callback_ && object) || this->bContainerIsNew_)
+                {
+                    if (this->bContainerIsNew_)
+                        this->bContainerIsNew_ = false;
+
                     T temp = *value;
                     this->value_.getValue(value);
                     if ((*value) != temp)
-                        this->callback_->call(object);
+                    {
+                        if (this->callback_ && object)
+                            this->callback_->call(object);
+                        else
+                            this->bDoInitialCallback_ = true;
+                    }
                 }
                 else
@@ -114,4 +123,5 @@
                     this->value_.getValue(value);
                 }
+std::cout << "end" << std::endl;
                 return *this;
             }
@@ -121,8 +131,10 @@
             ConfigValueContainer& getValue(std::vector<T>* value, C* object)
             {
-                if (this->callback_ && object)
-                {
+                if ((this->callback_ && object) || this->bContainerIsNew_)
+                {
+                    if (this->bContainerIsNew_)
+                        this->bContainerIsNew_ = false;
+
                     std::vector<T> temp = *value;
-
                     value->clear();
                     for (unsigned int i = 0; i < this->valueVector_.size(); ++i)
@@ -131,5 +143,8 @@
                     if (value->size() != temp.size())
                     {
-                        this->callback_->call(object);
+                        if (this->callback_ && object)
+                            this->callback_->call(object);
+                        else
+                            this->bDoInitialCallback_ = true;
                     }
                     else
@@ -139,5 +154,8 @@
                             if ((*value)[i] != temp[i])
                             {
-                                this->callback_->call(object);
+                                if (this->callback_ && object)
+                                    this->callback_->call(object);
+                                else
+                                    this->bDoInitialCallback_ = true;
                                 break;
                             }
@@ -172,8 +190,17 @@
 
             template <class T>
-            inline ConfigValueContainer& callback(void (T::*function) (void))
+            inline ConfigValueContainer& callback(T* object, void (T::*function) (void))
             {
                 if (!this->callback_)
+                {
                     this->callback_ = new ConfigValueCallback<T>(function);
+
+                    if (this->bDoInitialCallback_)
+                    {
+                        this->bDoInitialCallback_ = false;
+                        this->callback_->call(object);
+                    }
+                }
+
                 return (*this);
             }
@@ -215,4 +242,7 @@
             LanguageEntryLabel         description_;                //!< The description
             ConfigValueCallbackBase*   callback_;                   //!< A callback function to call after getValue if the value changed
+
+            bool                       bContainerIsNew_;            //!< True if it's the first time getValue() gets called
+            bool                       bDoInitialCallback_;         //!< True if the callback should be called as soon as it gets created
     };
 }
Index: /code/branches/core3/src/core/Core.cc
===================================================================
--- /code/branches/core3/src/core/Core.cc	(revision 1609)
+++ /code/branches/core3/src/core/Core.cc	(revision 1610)
@@ -96,8 +96,8 @@
     void Core::setConfigValues()
     {
-        SetConfigValue(softDebugLevelConsole_, 3).description("The maximal level of debug output shown in the console").callback(&Core::debugLevelChanged);
-        SetConfigValue(softDebugLevelLogfile_, 3).description("The maximal level of debug output shown in the logfile").callback(&Core::debugLevelChanged);
-        SetConfigValue(softDebugLevelShell_, 1).description("The maximal level of debug output shown in the ingame shell").callback(&Core::debugLevelChanged);
-        SetConfigValue(language_, Language::getLanguage().defaultLanguage_).description("The language of the ingame text").callback(&Core::languageChanged);
+        SetConfigValue(softDebugLevelConsole_, 3).description("The maximal level of debug output shown in the console").callback(this, &Core::debugLevelChanged);
+        SetConfigValue(softDebugLevelLogfile_, 3).description("The maximal level of debug output shown in the logfile").callback(this, &Core::debugLevelChanged);
+        SetConfigValue(softDebugLevelShell_, 1).description("The maximal level of debug output shown in the ingame shell").callback(this, &Core::debugLevelChanged);
+        SetConfigValue(language_, Language::getLanguage().defaultLanguage_).description("The language of the ingame text").callback(this, &Core::languageChanged);
     }
 
Index: /code/branches/core3/src/core/Identifier.cc
===================================================================
--- /code/branches/core3/src/core/Identifier.cc	(revision 1609)
+++ /code/branches/core3/src/core/Identifier.cc	(revision 1610)
@@ -195,12 +195,4 @@
 
     /**
-        @brief Tells the container to which Identifier it belongs to.
-    */
-    void Identifier::addXMLPortParamContainer(const std::string& paramname, XMLPortParamContainer* container)
-    {
-        container->setIdentifier(this);
-    }
-
-    /**
         @brief Returns true, if the Identifier is at least of the given type.
         @param identifier The identifier to compare with
Index: /code/branches/core3/src/core/Identifier.h
===================================================================
--- /code/branches/core3/src/core/Identifier.h	(revision 1609)
+++ /code/branches/core3/src/core/Identifier.h	(revision 1610)
@@ -206,5 +206,5 @@
             ConfigValueContainer* getLowercaseConfigValueContainer(const std::string& varname);
 
-            virtual void addXMLPortParamContainer(const std::string& paramname, XMLPortParamContainer* container);
+            virtual void addXMLPortParamContainer(const std::string& paramname, XMLPortParamContainer* container) = 0;
             virtual XMLPortParamContainer* getXMLPortParamContainer(const std::string& paramname) = 0;
 
@@ -461,5 +461,4 @@
     void ClassIdentifier<T>::addXMLPortParamContainer(const std::string& paramname, XMLPortParamContainer* container)
     {
-        Identifier::addXMLPortParamContainer(paramname, container);
         this->xmlportParamContainers_[paramname] = (XMLPortClassParamContainer<class O>*)container;
     }
Index: /code/branches/core3/src/core/Shell.cc
===================================================================
--- /code/branches/core3/src/core/Shell.cc	(revision 1609)
+++ /code/branches/core3/src/core/Shell.cc	(revision 1610)
@@ -90,6 +90,6 @@
     void Shell::setConfigValues()
     {
-        SetConfigValue(maxHistoryLength_, 100).callback(&Shell::commandHistoryLengthChanged);
-        SetConfigValue(historyOffset_, 0).callback(&Shell::commandHistoryOffsetChanged);
+        SetConfigValue(maxHistoryLength_, 100).callback(this, &Shell::commandHistoryLengthChanged);
+        SetConfigValue(historyOffset_, 0).callback(this, &Shell::commandHistoryOffsetChanged);
         SetConfigValueVector(commandHistory_, std::vector<std::string>());
     }
Index: /code/branches/core3/src/core/XMLPort.h
===================================================================
--- /code/branches/core3/src/core/XMLPort.h	(revision 1609)
+++ /code/branches/core3/src/core/XMLPort.h	(revision 1610)
@@ -42,26 +42,26 @@
 
 #define XMLPortParam(classname, paramname, loadfunction, savefunction, xmlelement, mode) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode)
+    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode)
 #define XMLPortParamTemplate(classname, paramname, loadfunction, savefunction, xmlelement, mode, ...) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode)
+    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode)
 
 #define XMLPortParamLoadOnly(classname, paramname, loadfunction, xmlelement, mode) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##0, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), 0, xmlelement, mode)
+    XMLPortParamGeneric(xmlcontainer##loadfunction##0, classname, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), 0, xmlelement, mode)
 #define XMLPortParamLoadOnlyTemplate(classname, paramname, loadfunction, xmlelement, mode, ...) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##0, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), 0, xmlelement, mode)
-
-#define XMLPortParamExtern(classname, object, paramname, loadfunction, savefunction, xmlelement, mode) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, object, paramname, orxonox::createExecutor(orxonox::createFunctor(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode);
-#define XMLPortParamExternTemplate(classname, object, paramname, loadfunction, savefunction, xmlelement, mode, ...) \
-    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, object, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&classname::savefunction), std::string( #classname ) + "::" + #savefunction), xmlelement, mode);
-
-#define XMLPortParamGeneric(containername, classname, object, paramname, loadexecutor, saveexecutor, xmlelement, mode) \
-    orxonox::XMLPortClassParamContainer<classname>* containername = (orxonox::XMLPortClassParamContainer<classname>*)(this->getIdentifier()->getXMLPortParamContainer(paramname)); \
+    XMLPortParamGeneric(xmlcontainer##loadfunction##0, classname, classname, this, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&classname::loadfunction), std::string( #classname ) + "::" + #loadfunction), 0, xmlelement, mode)
+
+#define XMLPortParamExtern(classname, externclass, object, paramname, loadfunction, savefunction, xmlelement, mode) \
+    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, externclass, object, paramname, orxonox::createExecutor(orxonox::createFunctor(&externclass::loadfunction), std::string( #externclass ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&externclass::savefunction), std::string( #externclass ) + "::" + #savefunction), xmlelement, mode);
+#define XMLPortParamExternTemplate(classname, externclass, object, paramname, loadfunction, savefunction, xmlelement, mode, ...) \
+    XMLPortParamGeneric(xmlcontainer##loadfunction##savefunction, classname, externclass, object, paramname, orxonox::createExecutor(orxonox::createFunctor< __VA_ARGS__ >(&externclass::loadfunction), std::string( #externclass ) + "::" + #loadfunction), orxonox::createExecutor(orxonox::createFunctor(&externclass::savefunction), std::string( #externclass ) + "::" + #savefunction), xmlelement, mode);
+
+#define XMLPortParamGeneric(containername, classname, objectclass, object, paramname, loadexecutor, saveexecutor, xmlelement, mode) \
+    orxonox::XMLPortClassParamContainer<objectclass>* containername = (orxonox::XMLPortClassParamContainer<objectclass>*)(ClassIdentifier<classname>::getIdentifier()->getXMLPortParamContainer(paramname)); \
     if (!containername) \
     { \
-        containername = new orxonox::XMLPortClassParamContainer<classname>(std::string(paramname), loadexecutor, saveexecutor); \
-        this->getIdentifier()->addXMLPortParamContainer(paramname, containername); \
+        containername = new orxonox::XMLPortClassParamContainer<objectclass>(std::string(paramname), ClassIdentifier<classname>::getIdentifier(), loadexecutor, saveexecutor); \
+        ClassIdentifier<classname>::getIdentifier()->addXMLPortParamContainer(paramname, containername); \
     } \
-    containername->port(object, xmlelement, mode)
+    containername->port((BaseObject*)this, object, xmlelement, mode)
 
 
@@ -72,9 +72,9 @@
 
 #define XMLPortObjectGeneric(containername, classname, objectclass, sectionname, loadexecutor, saveexecutor, xmlelement, mode, bApplyLoaderMask, bLoadBefore) \
-    orxonox::XMLPortClassObjectContainer<classname, objectclass>* containername = (orxonox::XMLPortClassObjectContainer<classname, objectclass>*)(this->getIdentifier()->getXMLPortObjectContainer(sectionname)); \
+    orxonox::XMLPortClassObjectContainer<classname, objectclass>* containername = (orxonox::XMLPortClassObjectContainer<classname, objectclass>*)(ClassIdentifier<classname>::getIdentifier()->getXMLPortObjectContainer(sectionname)); \
     if (!containername) \
     { \
-        containername = new orxonox::XMLPortClassObjectContainer<classname, objectclass>(std::string(sectionname), loadexecutor, saveexecutor, bApplyLoaderMask, bLoadBefore); \
-        this->getIdentifier()->addXMLPortObjectContainer(sectionname, containername); \
+        containername = new orxonox::XMLPortClassObjectContainer<classname, objectclass>(std::string(sectionname), ClassIdentifier<classname>::getIdentifier(), loadexecutor, saveexecutor, bApplyLoaderMask, bLoadBefore); \
+        ClassIdentifier<classname>::getIdentifier()->addXMLPortObjectContainer(sectionname, containername); \
     } \
     containername->port(this, xmlelement, mode)
@@ -103,6 +103,4 @@
             inline const std::string& getName() const
                 { return this->paramname_; }
-            inline void setIdentifier(Identifier* identifier)
-                { this->identifier_ = identifier; }
 
             virtual XMLPortParamContainer& description(const std::string description) = 0;
@@ -120,4 +118,5 @@
             ParseResult parseResult_;
             Identifier* identifier_;
+            BaseObject* owner_;
     };
 
@@ -133,13 +132,15 @@
 
         public:
-            XMLPortClassParamContainer(const std::string paramname, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor)
+            XMLPortClassParamContainer(const std::string paramname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor)
             {
                 this->paramname_ = paramname;
+                this->identifier_ = identifier;
                 this->loadexecutor_ = loadexecutor;
                 this->saveexecutor_ = saveexecutor;
             }
 
-            XMLPortParamContainer& port(T* object, Element& xmlelement, XMLPort::Mode mode)
-            {
+            XMLPortParamContainer& port(BaseObject* owner, T* object, Element& xmlelement, XMLPort::Mode mode)
+            {
+                this->owner_ = owner;
                 this->parseParams_.object = object;
                 this->parseParams_.xmlelement = &xmlelement;
@@ -153,5 +154,5 @@
                         if ((attribute.size() > 0) || (this->loadexecutor_->allDefaultValuesSet()))
                         {
-                            COUT(5) << ((BaseObject*)object)->getLoaderIndentation() << "Loading parameter " << this->paramname_ << " in " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")." << std::endl << ((BaseObject*)object)->getLoaderIndentation();
+                            COUT(5) << this->owner_->getLoaderIndentation() << "Loading parameter " << this->paramname_ << " in " << this->identifier_->getName() << " (objectname " << this->owner_->getName() << ")." << std::endl << this->owner_->getLoaderIndentation();
                             if (this->loadexecutor_->parse(object, attribute, ","))
                                 this->parseResult_ = PR_finished;
@@ -163,5 +164,5 @@
                     {
                         COUT(1) << std::endl;
-                        COUT(1) << "An error occurred in XMLPort.h while loading attribute '" << this->paramname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << ((BaseObject*)object)->getName() << ") in " << ((BaseObject*)object)->getLevelfile() << ":" << std::endl;
+                        COUT(1) << "An error occurred in XMLPort.h while loading attribute '" << this->paramname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << this->owner_->getName() << ") in " << this->owner_->getLevelfile() << ":" << std::endl;
                         COUT(1) << ex.what() << std::endl;
                     }
@@ -178,7 +179,7 @@
             }
 
-            XMLPortParamContainer& port(const ParseParams& parseParams)
-            {
-                return this->port(parseParams.object, *parseParams.xmlelement, parseParams.mode);
+            XMLPortParamContainer& port(BaseObject* owner, const ParseParams& parseParams)
+            {
+                return this->port(owner, parseParams.object, *parseParams.xmlelement, parseParams.mode);
             }
 
@@ -186,5 +187,5 @@
             {
                 if (result == PR_waiting_for_default_values)
-                    return this->port(params);
+                    return this->port(this->owner_, params);
                 else
                     return (*this);
@@ -262,4 +263,5 @@
             bool bApplyLoaderMask_;
             bool bLoadBefore_;
+            Identifier* identifier_;
     };
 
@@ -268,7 +270,8 @@
     {
         public:
-            XMLPortClassObjectContainer(const std::string sectionname, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor, bool bApplyLoaderMask, bool bLoadBefore)
+            XMLPortClassObjectContainer(const std::string sectionname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor, bool bApplyLoaderMask, bool bLoadBefore)
             {
                 this->sectionname_ = sectionname;
+                this->identifier_ = identifier;
                 this->loadexecutor_ = loadexecutor;
                 this->saveexecutor_ = saveexecutor;
@@ -310,9 +313,9 @@
                                             {
                                                 newObject->XMLPort(*child, XMLPort::LoadObject);
-                                                COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << object->getIdentifier()->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
+                                                COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
                                             }
                                             else
                                             {
-                                                COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << object->getIdentifier()->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
+                                                COUT(4) << ((BaseObject*)object)->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
                                             }
 
@@ -341,5 +344,5 @@
                     {
                         COUT(1) << std::endl;
-                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << Class(O)->getName() << "' in '" << this->sectionname_ << "' of '" << object->getIdentifier()->getName() << "' (objectname: " << ((BaseObject*)object)->getName() << ") in " << object->getLevelfile() << ":" << std::endl;
+                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << Class(O)->getName() << "' in '" << this->sectionname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << ((BaseObject*)object)->getName() << ") in " << object->getLevelfile() << ":" << std::endl;
                         COUT(1) << ex.what() << std::endl;
                     }
Index: /code/branches/core3/src/orxonox/GraphicsEngine.cc
===================================================================
--- /code/branches/core3/src/orxonox/GraphicsEngine.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/GraphicsEngine.cc	(revision 1610)
@@ -97,5 +97,5 @@
     SetConfigValue(ogreLogLevelCritical_, 2).description("Corresponding orxonox debug level for ogre Critical");
 
-    SetConfigValue(detailLevelParticle_, 2).description("O: off, 1: low, 2: normal, 3: high").callback(&GraphicsEngine::detailLevelParticleChanged);
+    SetConfigValue(detailLevelParticle_, 2).description("O: off, 1: low, 2: normal, 3: high").callback(this, &GraphicsEngine::detailLevelParticleChanged);
   }
 
Index: /code/branches/core3/src/orxonox/Settings.cc
===================================================================
--- /code/branches/core3/src/orxonox/Settings.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/Settings.cc	(revision 1610)
@@ -68,5 +68,5 @@
   void Settings::setConfigValues()
   {
-    SetConfigValue(dataPath_, "../../Media/").description("Relative path to the game data.").callback(&Settings::dataPathChanged);
+    SetConfigValue(dataPath_, "../../Media/").description("Relative path to the game data.").callback(this, &Settings::dataPathChanged);
   }
 
Index: /code/branches/core3/src/orxonox/objects/ParticleProjectile.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/ParticleProjectile.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/objects/ParticleProjectile.cc	(revision 1610)
@@ -64,5 +64,5 @@
     void ParticleProjectile::setConfigValues()
     {
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback(&ParticleProjectile::speedChanged);
+        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback((Projectile*)this, &ParticleProjectile::speedChanged);
     }
 
Index: /code/branches/core3/src/orxonox/objects/Projectile.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/Projectile.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/objects/Projectile.cc	(revision 1610)
@@ -74,5 +74,5 @@
         SetConfigValue(damage_, 15.0).description("The damage caused by the projectile");
         SetConfigValue(lifetime_, 4.0).description("The time in seconds a projectile stays alive");
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback(&Projectile::speedChanged);
+        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback(this, &Projectile::speedChanged);
     }
 
Index: /code/branches/core3/src/orxonox/objects/RotatingProjectile.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/RotatingProjectile.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/objects/RotatingProjectile.cc	(revision 1610)
@@ -65,5 +65,5 @@
     void RotatingProjectile::setConfigValues()
     {
-        SetConfigValue(colour_, ColourValue(1.0, 0.0, 0.0)).callback(&RotatingProjectile::colourChanged);
+        SetConfigValue(colour_, ColourValue(1.0, 0.0, 0.0)).callback(this, &RotatingProjectile::colourChanged);
     }
 
Index: /code/branches/core3/src/orxonox/objects/WorldEntity.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/WorldEntity.cc	(revision 1609)
+++ /code/branches/core3/src/orxonox/objects/WorldEntity.cc	(revision 1610)
@@ -112,5 +112,7 @@
         BaseObject::XMLPort(xmlelement, mode);
 
-        XMLPortParamExternTemplate(Ogre::Node, this->node_, "position", setPosition, getPosition, xmlelement, mode, Ogre::Node, const Vector3&);
+std::cout << "111111111111111\n";
+        XMLPortParamExternTemplate(WorldEntity, Ogre::Node, this->node_, "position", setPosition, getPosition, xmlelement, mode, Ogre::Node, const Vector3&);
+std::cout << "222222222222222\n";
         XMLPortParamLoadOnly(WorldEntity, "direction", setDirectionSimple, xmlelement, mode);
         XMLPortParamLoadOnly(WorldEntity, "yawpitchroll", setYawPitchRoll, xmlelement, mode);
Index: /code/branches/core3/src/util/Debug.h
===================================================================
--- /code/branches/core3/src/util/Debug.h	(revision 1609)
+++ /code/branches/core3/src/util/Debug.h	(revision 1610)
@@ -86,5 +86,5 @@
 
   #if ORX_HARD_DEBUG_LEVEL >= ORX_NONE
-   #define COUT0  \
+   #define COUT0 \
     (getSoftDebugLevel() < ORX_NONE) ? COUT_EXEC(0) : COUT_EXEC(0)
   #else
@@ -94,5 +94,5 @@
 
   #if ORX_HARD_DEBUG_LEVEL >= ORX_ERROR
-   #define COUT1  \
+   #define COUT1 \
     (getSoftDebugLevel() < ORX_ERROR) ? COUT_EXEC(1) : COUT_EXEC(1)
   #else
@@ -170,5 +170,5 @@
 
   #if ORX_HARD_DEBUG_LEVEL >= ORX_NONE
-   #define CCOUT0  \
+   #define CCOUT0 \
     (getSoftDebugLevel() < ORX_NONE) ? COUT_EXEC(0) : CCOUT_EXEC(0)
   #else
@@ -178,5 +178,5 @@
 
   #if ORX_HARD_DEBUG_LEVEL >= ORX_ERROR
-   #define CCOUT1  \
+   #define CCOUT1 \
     (getSoftDebugLevel() < ORX_ERROR) ? COUT_EXEC(1) : CCOUT_EXEC(1)
   #else
