--- a/mythtv/programs/mythbackend/scheduler.cpp
+++ b/mythtv/programs/mythbackend/scheduler.cpp
@@ -1809,6 +1809,11 @@ void Scheduler::run(void)
         {
             int msecs = CalcTimeToNextHandleRecordingEvent(
                 curtime, startIter, reclist, prerollseconds, maxSleep);
+
+            msecs -= prerollseconds * 1000;
+            if (msecs < 1)
+                msecs = 1;
+
             LOG(VB_SCHEDULE, LOG_INFO,
                 QString("sleeping for %1 ms (s2n: %2 sr: %3)")
                     .arg(msecs).arg(secs_to_next).arg(schedRunTime));
