diff --git a/MAC/GCF/TM/src/Port/GCF_RawPort.cc b/MAC/GCF/TM/src/Port/GCF_RawPort.cc
index 77ed9ca4f47ca67d33a0217bcfcc317cab4841de..51e3c647bfc7571e2326c1fb25371b4e8845615d 100644
--- a/MAC/GCF/TM/src/Port/GCF_RawPort.cc
+++ b/MAC/GCF/TM/src/Port/GCF_RawPort.cc
@@ -183,9 +183,15 @@ long GCFRawPort::setTimer(long delay_sec, long delay_usec,
 			  void* arg)
 {
   ASSERT(_pTimerHandler);
+  uint64 delay(delay_sec);
+  uint64 interval(interval_sec);
+  delay *= 1000000;
+  interval *= 1000000;
+  delay += (uint64) delay_usec;
+  interval += (uint64) interval_usec;
   return _pTimerHandler->setTimer(*this, 
-          (uint64) (delay_sec * 1000000 + delay_usec), 
-          (uint64) (interval_sec * 1000000 + interval_usec),
+          delay, 
+          interval,
           arg);  
 }