Index: uc_followup.module
===================================================================
--- uc_followup.module	(revision 699)
+++ uc_followup.module	(working copy)
@@ -134,6 +134,7 @@
  */
 function uc_followup_cron() {
   if (variable_get('uc_followup_auto_send', TRUE)) {
+    $time = time();
     $mega_query = '
       SELECT o.order_id, fu.* , fus.date, fus.manual, fus.email
       FROM uc_followup fu
@@ -146,15 +147,15 @@
         ) fus ON fu.followup_id = fus.followup_id AND fus.order_id = o.order_id
       WHERE
       ( 
-        (fus.date IS NULL AND (o.modified + (fu.hours_past *3600 )) < %d) OR
+        (fus.date IS NULL AND (o.modified + fu.hours_past * 3600 BETWEEN %d - fu.hours_past * 3600 AND %d)) OR
         (
-          (fu.repeat_after > 0 AND (fus.date + ( fu.repeat_after *3600 )) < %d) AND
+          (fu.repeat_after > 0 AND (fus.date + fu.repeat_after * 3600 BETWEEN %d - fu.hours_past * 3600 AND %d)) AND
           (fu.repeat_max = 0 OR fu.repeat_max < fus.sent_count)
         )
       )
       AND fu.status = 1
     ';
-    $result = db_query($mega_query, time(), time());
+    $result = db_query($mega_query, $time, $time, $time, $time);
     $i = 0;
     while (($pending = db_fetch_array($result)) && ($i < variable_get('uc_followup_send_limit', 100))) {
       $order = uc_order_load($pending['order_id']);
