diff --git a/Modules/include/PeriodicTrigger.h b/Modules/include/PeriodicTrigger.h
index f3185f859a9672224b99b43b2c9e6a32a9fe4587..631c3faca62584f0fb8493d53117bbffb4e98de1 100644
--- a/Modules/include/PeriodicTrigger.h
+++ b/Modules/include/PeriodicTrigger.h
@@ -26,13 +26,16 @@ namespace ChimeraTK {
 
       void mainLoop() {
         tick = 0;
-        if(timeout = 0) timeout = defaultTimeout_;
-
+        
         std::chrono::time_point<std::chrono::steady_clock> t = std::chrono::steady_clock::now();
 
         while(true) {
           timeout.read();
-          t += static_cast<uint32_t>(timeout) * std::chrono::milliseconds();
+          if(timeout == 0){
+            // set receiving end of timeout. Will only be overwritten if there is new data.
+            timeout = defaultTimeout_;
+          }
+          t += std::chrono::milliseconds(static_cast<uint32_t>(timeout));
           boost::this_thread::interruption_point();
           std::this_thread::sleep_until(t);