diff --git a/mythtv/libs/libmythtv/ringbuffer.cpp b/mythtv/libs/libmythtv/ringbuffer.cpp
index 2d731c8..9879b8d 100644
--- a/mythtv/libs/libmythtv/ringbuffer.cpp
+++ b/mythtv/libs/libmythtv/ringbuffer.cpp
@@ -407,6 +407,7 @@ int RingBuffer::ReadBufFree(void) const
     rbrlock.lockForRead();
     rbwlock.lockForRead();
     int ret = ((rbwpos >= rbrpos) ? rbrpos + bufferSize : rbrpos) - rbwpos - 1;
+    ret -= readblocksize; if (ret < 0) ret = 0; // JMS
     rbwlock.unlock();
     rbrlock.unlock();
     return ret;
