Index: trunk/Ohana/src/opihi/pantasks/CheckTasks.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 12404)
+++ trunk/Ohana/src/opihi/pantasks/CheckTasks.c	(revision 14069)
@@ -6,5 +6,5 @@
   Task *task;
   int status;
-  float time_running, next_timeout;
+  float time_running, next_timeout, fuzz;
   // struct timeval now;
 
@@ -45,5 +45,10 @@
     next_timeout = 0.0;
     gettimeofday (&task[0].last, (void *) NULL);
-    // XXX here is where I should add a fuzz factor (fraction of exec_period) 
+
+    // add random offset between 0 and 5% of exec_period
+    // XXX this should be optional
+    fuzz = 0.05*task[0].exec_period*drand48() + 1e-6*task[0].last.tv_usec; 
+    task[0].last.tv_usec = 1e6*(fuzz - (int)fuzz);
+    task[0].last.tv_sec += (int) fuzz;
 
     /* ready to run? : run task.exec macro */
