diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index 005dab69269c970936f32ea9a6a5d8e84a707872..6dff89a5bfd05d2ba6ded23e64e1c5b3c8d1726c 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -961,7 +961,8 @@ SIPCall::removeCall()
         sdp_->setActiveRemoteSdpSession(nullptr);
     }
     Call::removeCall();
-    mediaTransport_.reset();
+    if (mediaTransport_)
+        dht::ThreadPool::io().run([ice = std::move(mediaTransport_)] {});
     tmpMediaTransport_.reset();
     inv.reset();
     setTransport({});