diff --git a/src/sbbs3/ringbuf.c b/src/sbbs3/ringbuf.c
index 23817b3c4912f18d2b36f5a7167422302e5ba545..c7dba781016ba59aa4952e97aabfcd0c2b97c661 100644
--- a/src/sbbs3/ringbuf.c
+++ b/src/sbbs3/ringbuf.c
@@ -127,8 +127,9 @@ void RINGBUFCALL RingBufDispose( RingBuf* rb)
 		CloseEvent(rb->empty_event);
 #endif
 #ifdef RINGBUF_MUTEX
-	pthread_mutex_destroy(&rb->mutex);
-#endif
+	while(pthread_mutex_destroy(&rb->mutex)==-1 && errno==EBUSY)
+		SLEEP(1);
+#endi
 	memset(rb,0,sizeof(RingBuf));
 }