diff --git a/src/lisp/Darwin-os.c b/src/lisp/Darwin-os.c
index 5e8ddf98f96b85a4a6d226b29d02c5fae474d8f0..1f67b685fff79d4c000d3c12808f273687b2a8a6 100644
--- a/src/lisp/Darwin-os.c
+++ b/src/lisp/Darwin-os.c
@@ -66,8 +66,8 @@ void
 timebase_init(void)
 {
     int mib[2];
-    int tbfrequency;
-    int cpufrequency;
+    unsigned tbfrequency;
+    unsigned cpufrequency;
     unsigned int miblen;
     size_t len;
 
@@ -95,7 +95,7 @@ timebase_init(void)
 	perror("Error getting HW_CPU_FREQ from sysctl: ");
     }
 
-    cycles_per_tick = cpufrequency / tbfrequency;
+    cycles_per_tick = 0.5 + (cpufrequency / (double) tbfrequency);
 }
 #endif