diff --git a/lib/src/async_db.rs b/lib/src/async_db.rs
index 3cb652e..e5b751d 100644
--- a/lib/src/async_db.rs
+++ b/lib/src/async_db.rs
@@ -173,19 +173,9 @@ where
 
         let item = this.item.take().unwrap();
 
-        let fut = this.writer.push(item);
-        pin_mut!(fut);
-        match fut.poll(ctx) {
-            Poll::Ready(Ok(_)) => {
-                *this.item = None;
-                Poll::Ready(Ok(()))
-            }
-            Poll::Ready(Err(e)) => {
-                *this.item = None;
-                Poll::Ready(Err(e))
-            }
-            Poll::Pending => Poll::Pending,
-        }
+        let push_fut = this.writer.push(item);
+        pin_mut!(push_fut);
+        push_fut.poll(ctx)
     }
 
     fn start_send(self: std::pin::Pin<&mut Self>, item: T) -> Result<(), Self::Error> {