Index: code/branches/gui/src/core/Core.cc
===================================================================
--- code/branches/gui/src/core/Core.cc	(revision 2845)
+++ code/branches/gui/src/core/Core.cc	(revision 2846)
@@ -102,9 +102,6 @@
     }
 
-    Clock* Core::initialise(int argc, char** argv)
-    {
-        // Set up a basic clock to keep time
-        this->gameClock_ = new Clock();
-
+    void Core::initialise(int argc, char** argv)
+    {
         // Parse command line arguments fist
         try
@@ -175,7 +172,4 @@
         
         this->loaded_ = true;
-
-        // Return non const pointer to the game's clock for the main loop
-        return this->gameClock_;
     }
 
@@ -199,6 +193,4 @@
         // Also delete external console command that don't belong to an Identifier
         CommandExecutor::destroyExternalCommands();
-
-        delete this->gameClock_;
 
         assert(Core::singletonRef_s);
Index: code/branches/gui/src/core/Core.h
===================================================================
--- code/branches/gui/src/core/Core.h	(revision 2845)
+++ code/branches/gui/src/core/Core.h	(revision 2846)
@@ -45,6 +45,4 @@
 #include "util/OutputHandler.h"
 
-// Only allow main to access postMainInitialisation, so we need a forward declaration
-int main(int, char**);
 // boost::filesystem header has quite a large tail, use forward declaration
 namespace boost { namespace filesystem
@@ -64,5 +62,5 @@
             ~Core();
 
-            Clock* initialise(int argc, char** argv);
+            void initialise(int argc, char** argv);
             void setConfigValues();
 
@@ -75,6 +73,4 @@
             static const std::string& getLanguage();
             static void  resetLanguage();
-
-            static const Clock& getGameClock() { return *getInstance().gameClock_; }
 
             static void tsetMediaPath(const std::string& path)
@@ -123,6 +119,4 @@
             TclThreadManager*     tclThreadManager_;
 
-            Clock*                gameClock_;
-
             int softDebugLevel_;                            //!< The debug level
             int softDebugLevelConsole_;                     //!< The debug level for the console
Index: code/branches/gui/src/core/Game.cc
===================================================================
--- code/branches/gui/src/core/Game.cc	(revision 2845)
+++ code/branches/gui/src/core/Game.cc	(revision 2846)
@@ -86,6 +86,10 @@
         this->avgTickTime_ = 0.0f;
 
+
+        // Set up a basic clock to keep time
+        this->gameClock_ = new Clock();
+
         this->core_ = new orxonox::Core();
-        this->gameClock_ = this->core_->initialise(argc, argv);
+        this->core_->initialise(argc, argv);
 
         RegisterRootObject(Game);
@@ -104,4 +108,6 @@
         for (std::map<std::string, GameState*>::const_iterator it = allStates_s.begin(); it != allStates_s.end(); ++it)
             delete it->second;
+
+        delete this->gameClock_;
 
         assert(singletonRef_s);
@@ -158,4 +164,5 @@
 
             // UPDATE, bottom to top in the stack
+            this->core_->update(*this->gameClock_);
             for (std::vector<GameState*>::const_iterator it = this->activeStates_.begin();
                 it != this->activeStates_.end(); ++it)
Index: code/branches/gui/src/core/Game.h
===================================================================
--- code/branches/gui/src/core/Game.h	(revision 2845)
+++ code/branches/gui/src/core/Game.h	(revision 2846)
@@ -68,4 +68,6 @@
         void popState();
 
+        const Clock& getGameClock() { return *this->gameClock_; }
+
         float getAvgTickTime() { return this->avgTickTime_; }
         float getAvgFPS()      { return this->avgFPS_; }
Index: code/branches/gui/src/core/input/KeyBinder.cc
===================================================================
--- code/branches/gui/src/core/input/KeyBinder.cc	(revision 2845)
+++ code/branches/gui/src/core/input/KeyBinder.cc	(revision 2846)
@@ -42,5 +42,4 @@
 #include "core/CoreIncludes.h"
 #include "core/ConfigFileManager.h"
-#include "core/Core.h"
 #include "InputCommands.h"
 #include "InputManager.h"
