Index: mythtv/libs/libmythtv/tv_rec.cpp
===================================================================
--- mythtv/libs/libmythtv/tv_rec.cpp	(revision 14205)
+++ mythtv/libs/libmythtv/tv_rec.cpp	(working copy)
@@ -117,8 +117,7 @@
       internalState(kState_None), desiredNextState(kState_None),
       changeState(false), pauseNotify(true),
       stateFlags(0), lastTuningRequest(0),
-      // Previous recording info
-      lastRecording(NULL),
+      m_switchingBuffer(false),
       // Current recording info
       curRecording(NULL), autoRunJobs(JOB_NONE),
       // Pending recording info
@@ -1303,9 +1302,9 @@
             else if (!has_rec && !rec_soon && curRecording &&
                      (now >= curRecording->endts))
             {
-                if (lastRecording != curRecording)
+                if (!m_switchingBuffer)
                 {
-                    lastRecording = curRecording;
+                    m_switchingBuffer = true;
 
                     SwitchLiveTVRingBuffer(false, true);
 
@@ -1320,6 +1319,10 @@
                             <<"starttm("
                             <<starttime.toString(Qt::ISODate)<<")");
                 }
+                else
+                {
+                    VERBOSE(VB_RECORD, "Waiting for ringbuffer switch");
+                }
             }
             else
                 enable_ui = false;
@@ -3080,6 +3083,8 @@
         curRecording = new ProgramInfo(*pginfo);
         curRecording->MarkAsInUse(true, "recorder");
     }
+
+    m_switchingBuffer = false;
 }
 
 QString TVRec::TuningGetChanNum(const TuningRequest &request,
Index: mythtv/libs/libmythtv/tv_rec.h
===================================================================
--- mythtv/libs/libmythtv/tv_rec.h	(revision 14205)
+++ mythtv/libs/libmythtv/tv_rec.h	(working copy)
@@ -348,10 +348,8 @@
     QDateTime      eitScanStartTime;
     QWaitCondition triggerEventLoop;
     QWaitCondition triggerEventSleep;
+    bool           m_switchingBuffer;
 
-    // Previous recording pointer (do not dereference)
-    ProgramInfo *lastRecording;
-
     // Current recording info
     ProgramInfo *curRecording;
     QDateTime    recordEndTime;
