diff --git a/embassy-stm32/src/dma/ringbuffer.rs b/embassy-stm32/src/dma/ringbuffer.rs
index 800f19069..1235e5327 100644
--- a/embassy-stm32/src/dma/ringbuffer.rs
+++ b/embassy-stm32/src/dma/ringbuffer.rs
@@ -236,7 +236,7 @@ impl<'a, W: Word> WritableDmaRingBuffer<'a, W> {
 
             // Confirm that the DMA is not inside data we could have written
             let pos = self.pos(dma.get_remaining_transfers());
-            if (pos > self.end && pos <= start) || dma.get_complete_count() > 1 {
+            if (pos > self.end && pos <= start) || dma.get_complete_count() > 0 {
                 Err(OverrunError)
             } else {
                 self.end = (self.end + len) % self.cap();