diff --git unix/tclUnixTime.c unix/tclUnixTime.c
index 0fc87eab..3694ba22 100644
--- unix/tclUnixTime.c
+++ unix/tclUnixTime.c
@@ -136,7 +136,7 @@ TclpGetClicks(void)
 	Tcl_Time time;
 
 	tclGetTimeProcPtr(&time, tclTimeClientData);
-	now = time.sec*1000000 + time.usec;
+	now = ((unsigned long)(time.sec)*1000000UL) + (unsigned long)(time.usec);
     } else {
 	/*
 	 * A semi-NativeGetTime, specialized to clicks.
@@ -149,7 +149,7 @@ TclpGetClicks(void)
     Tcl_Time time;
 
     tclGetTimeProcPtr(&time, tclTimeClientData);
-    now = time.sec*1000000 + time.usec;
+    now = ((unsigned long)(time.sec)*1000000UL) + (unsigned long)(time.usec);
 #endif
 
     return now;
diff --git win/tclWinTime.c win/tclWinTime.c
index f75567e8..ed58824f 100644
--- win/tclWinTime.c
+++ win/tclWinTime.c
@@ -225,7 +225,7 @@ TclpGetClicks(void)
 	Tcl_Time now;		/* Current Tcl time */
 
 	tclGetTimeProcPtr(&now, tclTimeClientData);	/* Tcl_GetTime inlined */
-	return (unsigned long)(now.sec * 1000000) + now.usec;
+	return ((unsigned long)(now.sec)*1000000UL) + (unsigned long)(now.usec);
     }
 }
 
