diff --git a/sflphone-common/src/audio/mainbuffer.cpp b/sflphone-common/src/audio/mainbuffer.cpp
index 5514c28ffa3a49553880f36cfafe89ee83b49861..c14096a9f7910abfce7535dfee3e44632de22880 100644
--- a/sflphone-common/src/audio/mainbuffer.cpp
+++ b/sflphone-common/src/audio/mainbuffer.cpp
@@ -40,6 +40,9 @@ MainBuffer::MainBuffer() : _internalSamplingRate (8000)
 
 MainBuffer::~MainBuffer()
 {
+    // delete any ring buffers that didn't get removed
+    for (RingBufferMap::iterator iter = _ringBufferMap.begin(); iter != _ringBufferMap.end(); ++iter)
+        delete iter->second;
 }