Index: code/branches/gui/src/orxonox/tools/Timer.cc
===================================================================
--- code/branches/gui/src/orxonox/tools/Timer.cc	(revision 1694)
+++ code/branches/gui/src/orxonox/tools/Timer.cc	(revision 1695)
@@ -36,4 +36,5 @@
 #include "core/ConsoleCommand.h"
 #include "core/CommandExecutor.h"
+#include "core/Clock.h"
 
 namespace orxonox
@@ -125,10 +126,10 @@
         @brief Updates the timer before the frames are rendered.
     */
-    void TimerBase::tick(float dt)
+    void TimerBase::tick(const Clock& time)
     {
         if (this->bActive_)
         {
             // If active: Decrease the timer by the duration of the last frame
-            this->time_ -= dt;
+            this->time_ -= time.getDeltaTimeMicroseconds();
 
             if (this->time_ <= 0)
Index: code/branches/gui/src/orxonox/tools/Timer.h
===================================================================
--- code/branches/gui/src/orxonox/tools/Timer.h	(revision 1694)
+++ code/branches/gui/src/orxonox/tools/Timer.h	(revision 1695)
@@ -62,5 +62,6 @@
 
 #include "OrxonoxPrereqs.h"
-#include "objects/Tickable.h"
+#include "util/Integers.h"
+#include "core/OrxonoxClass.h"
 
 namespace orxonox
@@ -72,5 +73,5 @@
 
     //! TimerBase is the parent of the Timer class.
-    class _OrxonoxExport TimerBase : public Tickable
+    class _OrxonoxExport TimerBase : public OrxonoxClass
     {
         public:
@@ -97,19 +98,19 @@
             /** @brief Returns the remaining time until the Timer calls the function. @return The remaining time */
             inline float getRemainingTime() const
-                { return this->time_; }
+                { return (float)this->time_ / 1000000.0f; }
             /** @brief Gives the Timer some extra time. @param time The amount of extra time in seconds */
             inline void addTime(float time)
-                { this->time_ += time; }
+                { if (time > 0.0f) this->time_ += (uint64_t)(time * 1000000.0f); }
             /** @brief Decreases the remaining time of the Timer. @param time The amount of time to remove */
             inline void removeTime(float time)
-                { this->time_ -= time; }
+                { if (time > 0.0f) this->time_ -= (uint64_t)(time * 1000000.0f); }
             /** @brief Sets the interval of the Timer. @param interval The interval */
             inline void setInterval(float interval)
-                { this->interval_ = interval; }
+                { this->interval_ = (uint64_t)(interval * 1000000.0f); }
             /** @brief Sets bLoop to a given value. @param bLoop True = loop */
             inline void setLoop(bool bLoop)
                 { this->bLoop_ = bLoop; }
 
-            void tick(float dt);
+            void tick(const Clock& time);
 
         protected:
@@ -118,9 +119,9 @@
             Executor* executor_; //!< The executor of the function that should be called when the time expires
 
-            float interval_;     //!< The time-interval in seconds
+            uint64_t interval_;  //!< The time-interval in micro seconds
             bool bLoop_;         //!< If true, the function gets called every 'interval' seconds
             bool bActive_;       //!< If true, the Timer ticks and calls the function if the time's up
 
-            float time_;         //!< Internal variable, counting the time till the next function-call
+            uint64_t time_;      //!< Internal variable, counting the time till the next function-call
     };
 
@@ -155,5 +156,5 @@
                 this->deleteExecutor();
 
-                this->interval_ = interval;
+                this->setInterval(interval);
                 this->bLoop_ = bLoop;
                 executor->setObject(object);
@@ -161,5 +162,5 @@
                 this->bActive_ = true;
 
-                this->time_ = interval;
+                this->time_ = this->interval_;
             }
     };
@@ -193,10 +194,10 @@
                 this->deleteExecutor();
 
-                this->interval_ = interval;
+                this->setInterval(interval);
                 this->bLoop_ = bLoop;
                 this->executor_ = (Executor*)executor;
                 this->bActive_ = true;
 
-                this->time_ = interval;
+                this->time_ = this->interval_;
             }
     };
