Index: code/branches/cpp11_v2/src/libraries/core/BaseObject.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/BaseObject.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/BaseObject.h	(revision 10845)
@@ -163,5 +163,5 @@
             inline void setScene(const StrongOrWeakPtr<Scene>& scene, uint32_t sceneID) { this->scene_ = scene; this->sceneID_=sceneID; }
             inline Scene* getScene() const { return this->scene_.get(); }
-            inline virtual uint32_t getSceneID() const { return this->sceneID_; }
+            virtual inline uint32_t getSceneID() const { return this->sceneID_; }
 
             inline void setGametype(const StrongOrWeakPtr<Gametype>& gametype) { this->gametype_ = gametype; }
Index: code/branches/cpp11_v2/src/libraries/core/GUIManager.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/GUIManager.cc	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/GUIManager.cc	(revision 10845)
@@ -124,5 +124,5 @@
     {
     public:
-        void logEvent(const CEGUI::String& message, CEGUI::LoggingLevel level = CEGUI::Standard) override
+        virtual void logEvent(const CEGUI::String& message, CEGUI::LoggingLevel level = CEGUI::Standard) override
         {
             OutputLevel orxonoxLevel = level::debug_output;
@@ -143,5 +143,5 @@
 
         /// Carbon copy from CEGUIDefaultLogger.cpp with a bugfix for Windows
-        void setLogFilename(const CEGUI::String& filename, bool append = false) override
+        virtual void setLogFilename(const CEGUI::String& filename, bool append = false) override
         {
             // Close current log file (if any)
@@ -228,5 +228,5 @@
     public:
         /// Callback from Ogre invoked before other stuff in our target queue is rendered
-        void renderQueueStarted(Ogre::uint8 id, const Ogre::String& invocation, bool& skipThisQueue) override
+        virtual void renderQueueStarted(Ogre::uint8 id, const Ogre::String& invocation, bool& skipThisQueue) override
         {
             if (id == Ogre::RENDER_QUEUE_OVERLAY && invocation.empty())
Index: code/branches/cpp11_v2/src/libraries/core/GUIManager.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/GUIManager.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/GUIManager.h	(revision 10845)
@@ -169,12 +169,12 @@
 
         // keyHandler functions
-        void buttonPressed (const KeyEvent& evt) override;
-        void buttonReleased(const KeyEvent& evt) override;
+        virtual void buttonPressed (const KeyEvent& evt) override;
+        virtual void buttonReleased(const KeyEvent& evt) override;
 
         // mouseHandler functions
-        void buttonPressed (MouseButtonCode::ByEnum id) override;
-        void buttonReleased(MouseButtonCode::ByEnum id) override;
-        void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) override;
-        void mouseScrolled (int abs, int rel) override;
+        virtual void buttonPressed (MouseButtonCode::ByEnum id) override;
+        virtual void buttonReleased(MouseButtonCode::ByEnum id) override;
+        virtual void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) override;
+        virtual void mouseScrolled (int abs, int rel) override;
         void mouseLeft     ();
 
Index: code/branches/cpp11_v2/src/libraries/core/Game.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/Game.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/Game.h	(revision 10845)
@@ -135,5 +135,5 @@
         {
         public:
-            std::shared_ptr<GameState> fabricateInternal(const GameStateInfo& info) override
+            virtual std::shared_ptr<GameState> fabricateInternal(const GameStateInfo& info) override
                 { return std::shared_ptr<GameState>(std::make_shared<T>(info)); }
         };
Index: code/branches/cpp11_v2/src/libraries/core/GraphicsManager.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/GraphicsManager.cc	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/GraphicsManager.cc	(revision 10845)
@@ -82,11 +82,11 @@
     {
     public:
-        void windowResized     (Ogre::RenderWindow* rw) override
+        virtual void windowResized     (Ogre::RenderWindow* rw) override
             { orxonox::WindowEventListener::resizeWindow(rw->getWidth(), rw->getHeight()); }
-        void windowFocusChange (Ogre::RenderWindow* rw) override
+        virtual void windowFocusChange (Ogre::RenderWindow* rw) override
             { orxonox::WindowEventListener::changeWindowFocus(rw->isActive()); }
-        void windowClosed      (Ogre::RenderWindow* rw) override
+        virtual void windowClosed      (Ogre::RenderWindow* rw) override
             { orxonox::Game::getInstance().stop(); }
-        void windowMoved       (Ogre::RenderWindow* rw) override
+        virtual void windowMoved       (Ogre::RenderWindow* rw) override
             { orxonox::WindowEventListener::moveWindow(); }
     };
Index: code/branches/cpp11_v2/src/libraries/core/GraphicsManager.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/GraphicsManager.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/GraphicsManager.h	(revision 10845)
@@ -111,7 +111,7 @@
         // event from Ogre::LogListener
 #if OGRE_VERSION >= 0x010800
-        void messageLogged(const std::string& message, Ogre::LogMessageLevel lml, bool maskDebug, const std::string& logName, bool& skipThisMessage) override;
+        virtual void messageLogged(const std::string& message, Ogre::LogMessageLevel lml, bool maskDebug, const std::string& logName, bool& skipThisMessage) override;
 #else
-        void messageLogged(const std::string& message, Ogre::LogMessageLevel lml, bool maskDebug, const std::string& logName);
+        virtual void messageLogged(const std::string& message, Ogre::LogMessageLevel lml, bool maskDebug, const std::string& logName) override;
 #endif
 
Index: code/branches/cpp11_v2/src/libraries/core/XMLPort.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/XMLPort.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/XMLPort.h	(revision 10845)
@@ -556,5 +556,5 @@
             }
 
-            void callLoadExecutor(BaseObject* object, BaseObject* newObject) override
+            virtual void callLoadExecutor(BaseObject* object, BaseObject* newObject) override
             {
                 T* castObject = orxonox_cast<T*>(object);
Index: code/branches/cpp11_v2/src/libraries/core/command/Functor.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Functor.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/command/Functor.h	(revision 10845)
@@ -249,5 +249,5 @@
 
             // see Functor::operator()()
-            MultiType operator()(const MultiType& param1 = MultiType::Null, const MultiType& param2 = MultiType::Null, const MultiType& param3 = MultiType::Null, const MultiType& param4 = MultiType::Null, const MultiType& param5 = MultiType::Null) override
+            virtual MultiType operator()(const MultiType& param1 = MultiType::Null, const MultiType& param2 = MultiType::Null, const MultiType& param3 = MultiType::Null, const MultiType& param4 = MultiType::Null, const MultiType& param5 = MultiType::Null) override
             {
                 // call the function if an object was assigned
@@ -262,5 +262,5 @@
 
             // see Functor::getType()
-            inline Functor::Type::Enum getType() const override
+            virtual inline Functor::Type::Enum getType() const override
                 { return Functor::Type::Member; }
 
@@ -280,12 +280,12 @@
 
             // see Functor::setRawObjectPointer()
-            inline void setRawObjectPointer(void* object) override
+            virtual inline void setRawObjectPointer(void* object) override
                 { this->setObject((O*)object); }
             // see Functor::getRawObjectPointer()
-            inline void* getRawObjectPointer() const override
+            virtual inline void* getRawObjectPointer() const override
                 { return this->object_; }
 
             // see Functor::setSafeMode()
-            inline void setSafeMode(bool bSafeMode) override
+            virtual inline void setSafeMode(bool bSafeMode) override
             {
                 if (bSafeMode == this->bSafeMode_)
@@ -309,5 +309,5 @@
 
             /// Will be called by Destroyable::~Destroyable() if the stored object is deleted and the Functor is in safe mode.
-            inline void objectDeleted() override
+            virtual inline void objectDeleted() override
                 { this->object_ = nullptr; }
 
@@ -328,5 +328,5 @@
 
             // see Functor::operator()()
-            MultiType operator()(const MultiType& param1 = MultiType::Null, const MultiType& param2 = MultiType::Null, const MultiType& param3 = MultiType::Null, const MultiType& param4 = MultiType::Null, const MultiType& param5 = MultiType::Null) override
+            virtual MultiType operator()(const MultiType& param1 = MultiType::Null, const MultiType& param2 = MultiType::Null, const MultiType& param3 = MultiType::Null, const MultiType& param4 = MultiType::Null, const MultiType& param5 = MultiType::Null) override
             {
                 return (*this)((void*)nullptr, param1, param2, param3, param4, param5);
@@ -334,16 +334,16 @@
 
             // see Functor::getType()
-            inline Functor::Type::Enum getType() const override
+            virtual inline Functor::Type::Enum getType() const override
                 { return Functor::Type::Static; }
 
             // see Functor::setRawObjectPointer()
-            inline void setRawObjectPointer(void*) override
+            virtual inline void setRawObjectPointer(void*) override
                 { orxout(internal_warning) << "Can't assign an object pointer to a static functor" << endl; }
             // see Functor::getRawObjectPointer()
-            inline void* getRawObjectPointer() const override
+            virtual inline void* getRawObjectPointer() const override
                 { return nullptr; }
 
             // see Functor::setSafeMode()
-            inline void setSafeMode(bool) override {}
+            virtual inline void setSafeMode(bool) override {}
     };
 
Index: code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.h	(revision 10845)
@@ -65,10 +65,10 @@
 
         // Methods from ShellListener
-        void linesChanged() override;
-        void lineAdded() override;
-        void inputChanged() override;
-        void cursorChanged() override;
-        void executed() override;
-        void exit() override;
+        virtual void linesChanged() override;
+        virtual void lineAdded() override;
+        virtual void inputChanged() override;
+        virtual void cursorChanged() override;
+        virtual void executed() override;
+        virtual void exit() override;
 
         bool willPrintStatusLines();
Index: code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.h	(revision 10845)
@@ -67,10 +67,10 @@
 
         // Methods from ShellListener
-        void linesChanged() override;
-        void lineAdded() override;
-        void inputChanged() override;
-        void cursorChanged() override;
-        void executed() override;
-        void exit() override;
+        virtual void linesChanged() override;
+        virtual void lineAdded() override;
+        virtual void inputChanged() override;
+        virtual void cursorChanged() override;
+        virtual void executed() override;
+        virtual void exit() override;
 
         void resetTerminalMode();
Index: code/branches/cpp11_v2/src/libraries/core/command/Shell.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Shell.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/command/Shell.h	(revision 10845)
@@ -151,5 +151,5 @@
 
             // DevModeListener
-            void devModeChanged(bool value) override;
+            virtual void devModeChanged(bool value) override;
 
             void addToHistory(const std::string& command);
Index: code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryComment.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryComment.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryComment.h	(revision 10845)
@@ -54,21 +54,21 @@
 
             /// Destructor
-            inline virtual ~ConfigFileEntryComment() {}
+            virtual inline ~ConfigFileEntryComment() {}
 
-            inline virtual const std::string& getName() const override
+            virtual inline const std::string& getName() const override
                 { return this->comment_; }
 
-            inline virtual void setComment(const std::string& comment) override
+            virtual inline void setComment(const std::string& comment) override
                 { this->comment_ = comment; }
 
-            inline virtual void setValue(const std::string& value) override
+            virtual inline void setValue(const std::string& value) override
                 {}
-            inline virtual const std::string& getValue() const override
+            virtual inline const std::string& getValue() const override
                 { return BLANKSTRING; }
 
-            inline void setString(bool bString) override
+            virtual inline void setString(bool bString) override
                 {}
 
-            inline virtual const std::string& getFileEntry() const override
+            virtual inline const std::string& getFileEntry() const override
                 { return this->comment_; }
 
Index: code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryValue.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryValue.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryValue.h	(revision 10845)
@@ -67,25 +67,25 @@
 
             /// Destructor
-            inline virtual ~ConfigFileEntryValue() {}
+            virtual inline ~ConfigFileEntryValue() {}
 
-            inline virtual const std::string& getName() const override
+            virtual inline const std::string& getName() const override
                 { return this->name_; }
 
-            inline virtual void setComment(const std::string& comment) override
+            virtual inline void setComment(const std::string& comment) override
                 { this->additionalComment_ = comment; this->update(); }
 
-            inline virtual void setValue(const std::string& value) override
+            virtual inline void setValue(const std::string& value) override
                 { this->value_ = value; this->update(); }
-            inline virtual const std::string& getValue() const override
+            virtual inline const std::string& getValue() const override
                 { return this->value_; }
 
-            inline void virtual setString(bool bString) override
+            virtual inline void setString(bool bString) override
                 { this->bString_ = bString; this->update(); }
 
-            inline virtual const std::string& getFileEntry() const override
+            virtual inline const std::string& getFileEntry() const override
                 { return this->fileEntry_; }
 
             /// Returns the "key" of the value (in this case it's just the name of the entry, but for vectors it's different)
-            inline virtual const std::string& getKeyString() const
+            virtual inline const std::string& getKeyString() const
                 { return this->name_; }
 
Index: code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryVectorValue.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryVectorValue.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/config/ConfigFileEntryVectorValue.h	(revision 10845)
@@ -67,13 +67,13 @@
             inline ~ConfigFileEntryVectorValue() {}
 
-            inline unsigned int getIndex() const override
+            virtual inline unsigned int getIndex() const override
                 { return this->index_; }
 
             /// Returns the "key" of the value (the name of the vector plus the index of the element)
-            inline const std::string& getKeyString() const override
+            virtual inline const std::string& getKeyString() const override
                 { return this->keyString_; }
 
         private:
-            void update() override;
+            virtual void update() override;
 
             unsigned int index_;        ///< The index of the element in the vector
Index: code/branches/cpp11_v2/src/libraries/core/config/ConfigValueContainer.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/config/ConfigValueContainer.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/config/ConfigValueContainer.h	(revision 10845)
@@ -59,5 +59,5 @@
         public:
             virtual void call(void* object) = 0;
-            inline virtual ~ConfigValueCallbackBase() {}
+            virtual inline ~ConfigValueCallbackBase() {}
     };
 
@@ -67,6 +67,6 @@
         public:
             inline ConfigValueCallback(void (T::*function) (void)) : function_(function) {}
-            inline virtual ~ConfigValueCallback() {}
-            inline virtual void call(void* object) override
+            virtual inline ~ConfigValueCallback() {}
+            virtual inline void call(void* object) override
             {
                 if (!IdentifierManager::getInstance().isCreatingHierarchy())
Index: code/branches/cpp11_v2/src/libraries/core/config/SettingsConfigFile.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/config/SettingsConfigFile.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/config/SettingsConfigFile.h	(revision 10845)
@@ -68,5 +68,5 @@
             ~SettingsConfigFile();
 
-            void load() override; // tolua_export
+            virtual void load() override; // tolua_export
             void setFilename(const std::string& filename); // tolua_export
             void clean(bool bCleanComments = false); // tolua_export
Index: code/branches/cpp11_v2/src/libraries/core/input/HalfAxis.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/HalfAxis.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/HalfAxis.h	(revision 10845)
@@ -56,6 +56,6 @@
         using Button::execute;
         bool execute();
-        bool addParamCommand(ParamCommand* command) override;
-        void clear() override;
+        virtual bool addParamCommand(ParamCommand* command) override;
+        virtual void clear() override;
         void reset();
 
Index: code/branches/cpp11_v2/src/libraries/core/input/InputBuffer.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputBuffer.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputBuffer.h	(revision 10845)
@@ -66,5 +66,5 @@
         { }
         virtual ~InputBufferListenerTuple() { }
-        void callFunction() override
+        virtual void callFunction() override
         {
             (listener_->*function_)();
@@ -165,13 +165,13 @@
                 { if (this->cursor_ > 0) { --this->cursor_; } }
 
-            void buttonPressed(const KeyEvent& evt) override;
+            virtual void buttonPressed(const KeyEvent& evt) override;
 
         private:
             bool charIsAllowed(const char& input);
 
-            void buttonHeld   (const KeyEvent& evt) override;
-            void processKey   (const KeyEvent& evt);
+            virtual void buttonHeld (const KeyEvent& evt) override;
+            void processKey (const KeyEvent& evt);
 
-            void keyboardUpdated(float dt) override;
+            virtual void keyboardUpdated(float dt) override;
 
             std::string buffer_;
Index: code/branches/cpp11_v2/src/libraries/core/input/InputCommands.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputCommands.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputCommands.h	(revision 10845)
@@ -76,6 +76,6 @@
     {
     public:
-        bool execute(float abs = 1.0f, float rel = 1.0f) override;
-        CommandEvaluation* getEvaluation() override;
+        virtual bool execute(float abs = 1.0f, float rel = 1.0f) override;
+        virtual CommandEvaluation* getEvaluation() override;
         virtual SimpleCommand* clone() override { return new SimpleCommand(*this); }
 
@@ -104,6 +104,6 @@
     public:
         ParamCommand() : scale_(1.0f), paramCommand_(nullptr) { }
-        bool execute(float abs = 1.0f, float rel = 1.0f) override;
-        CommandEvaluation* getEvaluation() override;
+        virtual bool execute(float abs = 1.0f, float rel = 1.0f) override;
+        virtual CommandEvaluation* getEvaluation() override;
         virtual ParamCommand* clone() override { return new ParamCommand(*this); }
 
Index: code/branches/cpp11_v2/src/libraries/core/input/InputDevice.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputDevice.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputDevice.h	(revision 10845)
@@ -153,5 +153,5 @@
 
         //! Captures OIS events (which then get distributed to the derived class) and creates the button held events
-        void update(const Clock& time) override
+        virtual void update(const Clock& time) override
         {
             oisDevice_->capture();
@@ -171,5 +171,5 @@
 
         //! Clears the list of pressed buttons and calls the derived class's method
-        void clearBuffers() override
+        virtual void clearBuffers() override
         {
             pressedButtons_.clear();
@@ -180,5 +180,5 @@
         OISDeviceClass* getOISDevice()   { return this->oisDevice_; }
         // Returns the name of the derived class as string
-        std::string getClassName() const override { return DeviceClass::getClassNameImpl(); }
+        virtual std::string getClassName() const override { return DeviceClass::getClassNameImpl(); }
 
     protected:
Index: code/branches/cpp11_v2/src/libraries/core/input/InputManager.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputManager.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputManager.h	(revision 10845)
@@ -208,5 +208,5 @@
 
         // From WindowEventListener
-        void windowFocusChanged(bool bFocus) override;
+        virtual void windowFocusChanged(bool bFocus) override;
 
     private: // variables
Index: code/branches/cpp11_v2/src/libraries/core/input/InputState.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputState.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputState.h	(revision 10845)
@@ -157,5 +157,5 @@
         ~InputState() { }
 
-        void JoyStickQuantityChanged(const std::vector<JoyStick*>& joyStickList) override;
+        virtual void JoyStickQuantityChanged(const std::vector<JoyStick*>& joyStickList) override;
 
         //! Sets the priority (only to be used by the InputManager!)
Index: code/branches/cpp11_v2/src/libraries/core/input/JoyStick.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/JoyStick.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/JoyStick.h	(revision 10845)
@@ -77,6 +77,6 @@
 
     private:
-        void calibrationStarted() override;
-        void calibrationStopped() override;
+        virtual void calibrationStarted() override;
+        virtual void calibrationStopped() override;
         void evaluateCalibration();
 
@@ -86,5 +86,5 @@
 
         //! OIS event handler
-        bool buttonPressed (const OIS::JoyStickEvent &arg, int button) override
+        virtual bool buttonPressed (const OIS::JoyStickEvent &arg, int button) override
         {
             super::buttonPressed(static_cast<JoyStickButtonCode::ByEnum>(button));
@@ -93,5 +93,5 @@
 
         //! OIS event handler
-        bool buttonReleased(const OIS::JoyStickEvent &arg, int button) override
+        virtual bool buttonReleased(const OIS::JoyStickEvent &arg, int button) override
         {
             super::buttonReleased(static_cast<JoyStickButtonCode::ByEnum>(button));
@@ -99,9 +99,9 @@
         }
 
-        bool axisMoved     (const OIS::JoyStickEvent &arg, int axis) override;
-        bool sliderMoved   (const OIS::JoyStickEvent &arg, int id) override;
-        bool povMoved      (const OIS::JoyStickEvent &arg, int id) override;
+        virtual bool axisMoved     (const OIS::JoyStickEvent &arg, int axis) override;
+        virtual bool sliderMoved   (const OIS::JoyStickEvent &arg, int id) override;
+        virtual bool povMoved      (const OIS::JoyStickEvent &arg, int id) override;
         //! OIS event handler (don't remove that because of OIS version issues!)
-        bool vector3Moved  (const OIS::JoyStickEvent &arg, int id) override { return true; }
+        virtual bool vector3Moved  (const OIS::JoyStickEvent &arg, int id) override { return true; }
 
         //! Returns the class name as string
Index: code/branches/cpp11_v2/src/libraries/core/input/KeyBinder.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/KeyBinder.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/KeyBinder.h	(revision 10845)
@@ -86,24 +86,24 @@
         virtual void JoyStickQuantityChanged(const std::vector<JoyStick*>& joyStickList) override;
 
-        void allDevicesUpdated(float dt) override;
-        void mouseUpdated(float dt) override;
-        void joyStickUpdated(unsigned int joyStick, float dt) override;
+        virtual void allDevicesUpdated(float dt) override;
+        virtual void mouseUpdated(float dt) override;
+        virtual void joyStickUpdated(unsigned int joyStick, float dt) override;
         // internal
         void tickHalfAxis(HalfAxis& halfAxis);
 
-        void buttonPressed (const KeyEvent& evt) override;
-        void buttonReleased(const KeyEvent& evt) override;
-        void buttonHeld    (const KeyEvent& evt) override;
-
-        void buttonPressed (MouseButtonCode::ByEnum button) override;
-        void buttonReleased(MouseButtonCode::ByEnum button) override;
-        void buttonHeld    (MouseButtonCode::ByEnum button) override;
-        void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) override;
-        void mouseScrolled (int abs, int rel) override;
-
-        void buttonPressed (unsigned int device, JoyStickButtonCode::ByEnum button) override;
-        void buttonReleased(unsigned int device, JoyStickButtonCode::ByEnum button) override;
-        void buttonHeld    (unsigned int device, JoyStickButtonCode::ByEnum button) override;
-        void axisMoved     (unsigned int device, unsigned int axis, float value) override;
+        virtual void buttonPressed (const KeyEvent& evt) override;
+        virtual void buttonReleased(const KeyEvent& evt) override;
+        virtual void buttonHeld    (const KeyEvent& evt) override;
+
+        virtual void buttonPressed (MouseButtonCode::ByEnum button) override;
+        virtual void buttonReleased(MouseButtonCode::ByEnum button) override;
+        virtual void buttonHeld    (MouseButtonCode::ByEnum button) override;
+        virtual void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) override;
+        virtual void mouseScrolled (int abs, int rel) override;
+
+        virtual void buttonPressed (unsigned int device, JoyStickButtonCode::ByEnum button) override;
+        virtual void buttonReleased(unsigned int device, JoyStickButtonCode::ByEnum button) override;
+        virtual void buttonHeld    (unsigned int device, JoyStickButtonCode::ByEnum button) override;
+        virtual void axisMoved     (unsigned int device, unsigned int axis, float value) override;
 
     protected: // variables
Index: code/branches/cpp11_v2/src/libraries/core/input/KeyDetector.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/KeyDetector.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/KeyDetector.h	(revision 10845)
@@ -51,5 +51,5 @@
 
         void callback(const std::string& name);
-        void JoyStickQuantityChanged(const std::vector<JoyStick*>& joyStickList) override;
+        virtual void JoyStickQuantityChanged(const std::vector<JoyStick*>& joyStickList) override;
         void assignCommands();
 
Index: code/branches/cpp11_v2/src/libraries/core/input/Keyboard.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/Keyboard.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/Keyboard.h	(revision 10845)
@@ -75,6 +75,6 @@
         }
 
-        bool keyPressed(const OIS::KeyEvent& arg) override;
-        bool keyReleased(const OIS::KeyEvent& arg) override;
+        virtual bool keyPressed(const OIS::KeyEvent& arg) override;
+        virtual bool keyReleased(const OIS::KeyEvent& arg) override;
 
         //! Returns the class name as string
Index: code/branches/cpp11_v2/src/libraries/core/input/Mouse.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/Mouse.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/input/Mouse.h	(revision 10845)
@@ -74,5 +74,5 @@
     private:
         //! OIS event handler
-        bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override
+        virtual bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override
         {
             super::buttonPressed(static_cast<MouseButtonCode::ByEnum>(id));
@@ -81,5 +81,5 @@
 
         //! OIS event handler
-        bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override
+        virtual bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override
         {
             super::buttonReleased(static_cast<MouseButtonCode::ByEnum>(id));
@@ -87,7 +87,7 @@
         }
 
-        bool mouseMoved(const OIS::MouseEvent &arg) override;
+        virtual bool mouseMoved(const OIS::MouseEvent &arg) override;
 
-        void windowResized(unsigned int newWidth, unsigned int newHeight) override;
+        virtual void windowResized(unsigned int newWidth, unsigned int newHeight) override;
 
         // Returns the class name as string
Index: code/branches/cpp11_v2/src/libraries/core/object/WeakPtr.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/object/WeakPtr.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/object/WeakPtr.h	(revision 10845)
@@ -124,5 +124,5 @@
 
             /// Destructor
-            inline virtual ~WeakPtr()
+            virtual inline ~WeakPtr()
             {
                 this->unregisterAsDestructionListener(this->base_);
@@ -230,5 +230,5 @@
         private:
             /// Will be called by Destroyable::~Destroyable() if the stored object is deleted. Resets the wrapped pointer and executes the callback.
-            inline void objectDeleted() override
+            virtual inline void objectDeleted() override
             {
                 this->base_ = nullptr;
Index: code/branches/cpp11_v2/src/libraries/core/singleton/ScopedSingletonWrapper.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/singleton/ScopedSingletonWrapper.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/core/singleton/ScopedSingletonWrapper.h	(revision 10845)
@@ -102,5 +102,5 @@
 
         //! Called if the Scope of the Singleton gets active (creates the instance)
-        void activated() override
+        virtual void activated() override
         {
             assert(singletonPtr_ == nullptr);
@@ -109,5 +109,5 @@
 
         //! Called if the Scope of this Singleton gets deactivated (destroys the instance)
-        void deactivated() override
+        virtual void deactivated() override
         {
             assert(singletonPtr_ != nullptr);
@@ -157,5 +157,5 @@
 
         //! Called if the Scope of the Singleton gets active (creates the instance)
-        void activated() override
+        virtual void activated() override
         {
             assert(singletonPtr_ == nullptr);
@@ -169,5 +169,5 @@
 
         //! Called if the Scope of this Singleton gets deactivated (destroys the instance)
-        void deactivated() override
+        virtual void deactivated() override
         {
             if (singletonPtr_ != nullptr)
Index: code/branches/cpp11_v2/src/libraries/network/Client.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/Client.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/Client.h	(revision 10845)
@@ -76,8 +76,8 @@
     static Client* getInstance(){ return singletonPtr_s; } // tolua_export
 
-    bool establishConnection() override;
+    virtual bool establishConnection() override;
     void setDestination( const std::string& serverAddress, unsigned int port ); // tolua_export
-    bool closeConnection() override;
-    void queuePacket(ENetPacket* packet, int clientID, uint8_t channelID) override;
+    virtual bool closeConnection() override;
+    virtual void queuePacket(ENetPacket* packet, int clientID, uint8_t channelID) override;
     virtual bool sendPacket( packet::Packet* packet ) override{ return packet->send( static_cast<Host*>(this) ); }
     virtual void doSendChat(const std::string& message, unsigned int sourceID, unsigned int targetID) override;
@@ -91,5 +91,5 @@
     Client(const Client& copy); // not used
     virtual bool isServer_() override{return false;}
-    void processPacket(packet::Packet* packet) override;
+    virtual void processPacket(packet::Packet* packet) override;
 
     static Client* singletonPtr_s;
Index: code/branches/cpp11_v2/src/libraries/network/NetworkFunction.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/NetworkFunction.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/NetworkFunction.h	(revision 10845)
@@ -142,5 +142,5 @@
     { }
 
-    inline bool call(uint32_t objectID) override
+    virtual inline bool call(uint32_t objectID) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
@@ -152,5 +152,5 @@
         return false;
     }
-    inline bool call(uint32_t objectID, const MultiType& mt1) override
+    virtual inline bool call(uint32_t objectID, const MultiType& mt1) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
@@ -162,5 +162,5 @@
         return false;
     }
-    inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2) override
+    virtual inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
@@ -172,5 +172,5 @@
         return false;
     }
-    inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3) override
+    virtual inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
@@ -182,5 +182,5 @@
         return false;
     }
-    inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4) override
+    virtual inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
@@ -192,5 +192,5 @@
         return false;
     }
-    inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4, const MultiType& mt5) override
+    virtual inline bool call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4, const MultiType& mt5) override
     {
       if ( Synchronisable::getSynchronisable(objectID)!=nullptr )
Index: code/branches/cpp11_v2/src/libraries/network/Server.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/Server.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/Server.h	(revision 10845)
@@ -61,5 +61,5 @@
     void open();
     void close();
-    void queuePacket(ENetPacket *packet, int clientID, uint8_t channelID) override;
+    virtual void queuePacket(ENetPacket *packet, int clientID, uint8_t channelID) override;
     virtual bool sendPacket( packet::Packet* packet ) override{ return packet->send( static_cast<Host*>(this) ); }
     void update(const Clock& time);
@@ -76,7 +76,7 @@
     unsigned int playerID(){return 0;}
 
-    void addPeer(uint32_t peerID) override;
-    void removePeer(uint32_t peerID) override;
-    void processPacket(packet::Packet* packet) override;
+    virtual void addPeer(uint32_t peerID) override;
+    virtual void removePeer(uint32_t peerID) override;
+    virtual void processPacket(packet::Packet* packet) override;
 
     bool createClient(int clientID);
Index: code/branches/cpp11_v2/src/libraries/network/packet/Acknowledgement.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/Acknowledgement.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/Acknowledgement.h	(revision 10845)
@@ -46,5 +46,5 @@
   ~Acknowledgement();
 
-  inline unsigned int getSize() const override;
+  virtual inline unsigned int getSize() const override;
   virtual bool process(orxonox::Host* host) override;
 
Index: code/branches/cpp11_v2/src/libraries/network/packet/Chat.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/Chat.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/Chat.h	(revision 10845)
@@ -49,5 +49,5 @@
 
   /* get size of packet */
-  inline unsigned int getSize() const override;
+  virtual inline unsigned int getSize() const override;
 
   /* process chat message packet and remove it afterwards */
Index: code/branches/cpp11_v2/src/libraries/network/packet/ClassID.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/ClassID.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/ClassID.h	(revision 10845)
@@ -47,5 +47,5 @@
   ~ClassID();
 
-  uint32_t getSize() const override;
+  virtual uint32_t getSize() const override;
   virtual bool process(orxonox::Host* host) override;
 
Index: code/branches/cpp11_v2/src/libraries/network/packet/DeleteObjects.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/DeleteObjects.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/DeleteObjects.h	(revision 10845)
@@ -48,5 +48,5 @@
   bool fetchIDs();
 
-  inline unsigned int getSize() const override;
+  virtual inline unsigned int getSize() const override;
   virtual bool process(orxonox::Host* host) override;
 
Index: code/branches/cpp11_v2/src/libraries/network/packet/FunctionCalls.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/FunctionCalls.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/FunctionCalls.h	(revision 10845)
@@ -52,5 +52,5 @@
   ~FunctionCalls();
 
-  inline unsigned int getSize() const override
+  virtual inline unsigned int getSize() const override
     { assert(!this->isDataENetAllocated()); return currentSize_; }
   virtual bool process(orxonox::Host* host) override;
Index: code/branches/cpp11_v2/src/libraries/network/packet/Welcome.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/Welcome.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/network/packet/Welcome.h	(revision 10845)
@@ -45,6 +45,6 @@
   virtual ~Welcome();
 
-  uint8_t *getData() override;
-  inline unsigned int getSize() const override;
+  virtual uint8_t *getData() override;
+  virtual inline unsigned int getSize() const override;
   virtual bool process(orxonox::Host* host) override;
 
Index: code/branches/cpp11_v2/src/libraries/tools/BulletDebugDrawer.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/tools/BulletDebugDrawer.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/tools/BulletDebugDrawer.h	(revision 10845)
@@ -44,6 +44,6 @@
 
         protected:
-            bool frameStarted(const Ogre::FrameEvent& evt) override;
-            bool frameEnded(const Ogre::FrameEvent& evt) override;
+            virtual bool frameStarted(const Ogre::FrameEvent& evt) override;
+            virtual bool frameEnded(const Ogre::FrameEvent& evt) override;
 
         private:
Index: code/branches/cpp11_v2/src/libraries/util/MultiType.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/util/MultiType.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/util/MultiType.h	(revision 10845)
@@ -175,5 +175,5 @@
         public:
             inline MT_ValueBase(void* data, Type::Enum type) : type_(type), bLastConversionSuccessful(true), data_(data) {}
-            inline virtual ~MT_ValueBase() {}
+            virtual inline ~MT_ValueBase() {}
 
             virtual MT_ValueBase* clone() const = 0;
Index: code/branches/cpp11_v2/src/libraries/util/MultiTypeValue.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/util/MultiTypeValue.h	(revision 10830)
+++ code/branches/cpp11_v2/src/libraries/util/MultiTypeValue.h	(revision 10845)
@@ -58,32 +58,32 @@
 
         /// Creates a copy of itself.
-        inline MT_ValueBase* clone() const override { return new MT_Value<T>(this->value_, this->type_); }
+        virtual inline MT_ValueBase* clone() const override { return new MT_Value<T>(this->value_, this->type_); }
 
         /// Resets the current value to the default.
-        inline void reset() override { this->value_ = zeroise<T>(); bLastConversionSuccessful = true; }
-
-        inline bool getValue(char*                 value) const override { return convertValue<T, char                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(unsigned char*        value) const override { return convertValue<T, unsigned char       >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(short*                value) const override { return convertValue<T, short               >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(unsigned short*       value) const override { return convertValue<T, unsigned short      >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(int*                  value) const override { return convertValue<T, int                 >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(unsigned int*         value) const override { return convertValue<T, unsigned int        >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(long*                 value) const override { return convertValue<T, long                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(unsigned long*        value) const override { return convertValue<T, unsigned long       >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(long long*            value) const override { return convertValue<T, long long           >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(unsigned long long*   value) const override { return convertValue<T, unsigned long long  >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(float*                value) const override { return convertValue<T, float               >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(double*               value) const override { return convertValue<T, double              >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(long double*          value) const override { return convertValue<T, long double         >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(bool*                 value) const override { return convertValue<T, bool                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(void**                value) const override { return convertValue<T, void*               >(value, value_, nullptr); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(std::string*          value) const override { return convertValue<T, std::string         >(value, value_, NilValue<std::string>         ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Vector2*     value) const override { return convertValue<T, orxonox::Vector2    >(value, value_, NilValue<orxonox::Vector2>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Vector3*     value) const override { return convertValue<T, orxonox::Vector3    >(value, value_, NilValue<orxonox::Vector3>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Vector4*     value) const override { return convertValue<T, orxonox::Vector4    >(value, value_, NilValue<orxonox::Vector4>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::ColourValue* value) const override { return convertValue<T, orxonox::ColourValue>(value, value_, NilValue<orxonox::ColourValue>()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Quaternion*  value) const override { return convertValue<T, orxonox::Quaternion >(value, value_, NilValue<orxonox::Quaternion> ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Radian*      value) const override { return convertValue<T, orxonox::Radian     >(value, value_, NilValue<orxonox::Radian>     ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
-        inline bool getValue(orxonox::Degree*      value) const override { return convertValue<T, orxonox::Degree     >(value, value_, NilValue<orxonox::Degree>     ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline void reset() override { this->value_ = zeroise<T>(); bLastConversionSuccessful = true; }
+
+        virtual inline bool getValue(char*                 value) const override { return convertValue<T, char                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(unsigned char*        value) const override { return convertValue<T, unsigned char       >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(short*                value) const override { return convertValue<T, short               >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(unsigned short*       value) const override { return convertValue<T, unsigned short      >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(int*                  value) const override { return convertValue<T, int                 >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(unsigned int*         value) const override { return convertValue<T, unsigned int        >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(long*                 value) const override { return convertValue<T, long                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(unsigned long*        value) const override { return convertValue<T, unsigned long       >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(long long*            value) const override { return convertValue<T, long long           >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(unsigned long long*   value) const override { return convertValue<T, unsigned long long  >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(float*                value) const override { return convertValue<T, float               >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(double*               value) const override { return convertValue<T, double              >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(long double*          value) const override { return convertValue<T, long double         >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(bool*                 value) const override { return convertValue<T, bool                >(value, value_, 0); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(void**                value) const override { return convertValue<T, void*               >(value, value_, nullptr); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(std::string*          value) const override { return convertValue<T, std::string         >(value, value_, NilValue<std::string>         ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Vector2*     value) const override { return convertValue<T, orxonox::Vector2    >(value, value_, NilValue<orxonox::Vector2>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Vector3*     value) const override { return convertValue<T, orxonox::Vector3    >(value, value_, NilValue<orxonox::Vector3>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Vector4*     value) const override { return convertValue<T, orxonox::Vector4    >(value, value_, NilValue<orxonox::Vector4>    ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::ColourValue* value) const override { return convertValue<T, orxonox::ColourValue>(value, value_, NilValue<orxonox::ColourValue>()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Quaternion*  value) const override { return convertValue<T, orxonox::Quaternion >(value, value_, NilValue<orxonox::Quaternion> ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Radian*      value) const override { return convertValue<T, orxonox::Radian     >(value, value_, NilValue<orxonox::Radian>     ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
+        virtual inline bool getValue(orxonox::Degree*      value) const override { return convertValue<T, orxonox::Degree     >(value, value_, NilValue<orxonox::Degree>     ()); } ///< Assigns the value to the given pointer. The value gets converted if the types don't match.
 
         /**
@@ -91,5 +91,5 @@
             @param other The other MultiType
         */
-        inline bool setValue(const MultiType& other) override
+        virtual inline bool setValue(const MultiType& other) override
         {
             if (other.value_)
@@ -104,37 +104,37 @@
         }
 
-        inline bool setValue(const char& value) override                 { return (bLastConversionSuccessful = convertValue<char                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const unsigned char& value) override        { return (bLastConversionSuccessful = convertValue<unsigned char       , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const short& value) override                { return (bLastConversionSuccessful = convertValue<short               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const unsigned short& value) override       { return (bLastConversionSuccessful = convertValue<unsigned short      , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const int& value) override                  { return (bLastConversionSuccessful = convertValue<int                 , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const unsigned int& value) override         { return (bLastConversionSuccessful = convertValue<unsigned int        , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const long& value) override                 { return (bLastConversionSuccessful = convertValue<long                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const unsigned long& value) override        { return (bLastConversionSuccessful = convertValue<unsigned long       , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const long long& value) override            { return (bLastConversionSuccessful = convertValue<long long           , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const unsigned long long& value) override   { return (bLastConversionSuccessful = convertValue<unsigned long long  , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const float& value) override                { return (bLastConversionSuccessful = convertValue<float               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const double& value) override               { return (bLastConversionSuccessful = convertValue<double              , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const long double& value) override          { return (bLastConversionSuccessful = convertValue<long double         , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const bool& value) override                 { return (bLastConversionSuccessful = convertValue<bool                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(      void* const& value) override          { return (bLastConversionSuccessful = convertValue<void*               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const std::string& value) override          { return (bLastConversionSuccessful = convertValue<std::string         , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Vector2& value) override     { return (bLastConversionSuccessful = convertValue<orxonox::Vector2    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Vector3& value) override     { return (bLastConversionSuccessful = convertValue<orxonox::Vector3    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Vector4& value) override     { return (bLastConversionSuccessful = convertValue<orxonox::Vector4    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::ColourValue& value) override { return (bLastConversionSuccessful = convertValue<orxonox::ColourValue, T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Quaternion& value) override  { return (bLastConversionSuccessful = convertValue<orxonox::Quaternion , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Radian& value) override      { return (bLastConversionSuccessful = convertValue<orxonox::Radian     , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
-        inline bool setValue(const orxonox::Degree& value) override      { return (bLastConversionSuccessful = convertValue<orxonox::Degree     , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const char& value)                 override { return (bLastConversionSuccessful = convertValue<char                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const unsigned char& value)        override { return (bLastConversionSuccessful = convertValue<unsigned char       , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const short& value)                override { return (bLastConversionSuccessful = convertValue<short               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const unsigned short& value)       override { return (bLastConversionSuccessful = convertValue<unsigned short      , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const int& value)                  override { return (bLastConversionSuccessful = convertValue<int                 , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const unsigned int& value)         override { return (bLastConversionSuccessful = convertValue<unsigned int        , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const long& value)                 override { return (bLastConversionSuccessful = convertValue<long                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const unsigned long& value)        override { return (bLastConversionSuccessful = convertValue<unsigned long       , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const long long& value)            override { return (bLastConversionSuccessful = convertValue<long long           , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const unsigned long long& value)   override { return (bLastConversionSuccessful = convertValue<unsigned long long  , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const float& value)                override { return (bLastConversionSuccessful = convertValue<float               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const double& value)               override { return (bLastConversionSuccessful = convertValue<double              , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const long double& value)          override { return (bLastConversionSuccessful = convertValue<long double         , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const bool& value)                 override { return (bLastConversionSuccessful = convertValue<bool                , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(      void* const& value)          override { return (bLastConversionSuccessful = convertValue<void*               , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const std::string& value)          override { return (bLastConversionSuccessful = convertValue<std::string         , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Vector2& value)     override { return (bLastConversionSuccessful = convertValue<orxonox::Vector2    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Vector3& value)     override { return (bLastConversionSuccessful = convertValue<orxonox::Vector3    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Vector4& value)     override { return (bLastConversionSuccessful = convertValue<orxonox::Vector4    , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::ColourValue& value) override { return (bLastConversionSuccessful = convertValue<orxonox::ColourValue, T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Quaternion& value)  override { return (bLastConversionSuccessful = convertValue<orxonox::Quaternion , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Radian& value)      override { return (bLastConversionSuccessful = convertValue<orxonox::Radian     , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
+        virtual inline bool setValue(const orxonox::Degree& value)      override { return (bLastConversionSuccessful = convertValue<orxonox::Degree     , T>(&value_, value, NilValue<T>())); } ///< Assigns the value by converting it to T.
 
         /// Puts the current value on the stream
-        inline void toString(std::ostream& outstream) const override { outstream << this->value_; }
+        virtual inline void toString(std::ostream& outstream) const override { outstream << this->value_; }
 
         /// loads data from the bytestream (mem) into the MT and increases the bytestream pointer by the size of the data
-        inline void importData( uint8_t*& mem ) override         { loadAndIncrease( /*(const T&)*/this->value_, mem ); }
+        virtual inline void importData( uint8_t*& mem ) override         { loadAndIncrease( /*(const T&)*/this->value_, mem ); }
         /// saves data from the MT into the bytestream (mem) and increases the bytestream pointer by the size of the data
-        inline void exportData( uint8_t*& mem ) const override   { saveAndIncrease( /*(const T&)*/this->value_, mem ); }
+        virtual inline void exportData( uint8_t*& mem ) const override   { saveAndIncrease( /*(const T&)*/this->value_, mem ); }
         /// returns the size of the data that would be saved by exportData
-        inline uint8_t getSize() const override { return returnSize( this->value_ ); }
+        virtual inline uint8_t getSize() const override { return returnSize( this->value_ ); }
 
         T value_; ///< The stored value
