diff --git a/daemon/src/audio/ringbuffer.cpp b/daemon/src/audio/ringbuffer.cpp
index b6202e565da6f51d8ecf5d329346046583e7eaab..8b3c21d963e297dc5854fc79fbee60f42137800c 100644
--- a/daemon/src/audio/ringbuffer.cpp
+++ b/daemon/src/audio/ringbuffer.cpp
@@ -283,7 +283,7 @@ RingBuffer::discard(size_t toDiscard, const std::string &call_id)
 {
     std::unique_lock<std::mutex> l(lock_);
 
-    size_t buffer_size = buffer_.frames();
+    const size_t buffer_size = buffer_.frames();
     if (buffer_size == 0)
         return 0;
 
@@ -300,6 +300,9 @@ size_t
 RingBuffer::discard(size_t toDiscard)
 {
     const size_t buffer_size = buffer_.frames();
+    if (buffer_size == 0)
+        return 0;
+
     for (auto & r : readpointers_) {
         size_t dst = (r.second + buffer_size - endPos_) % buffer_size;
         if (dst < toDiscard) {