diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index f689d1841ed3dc8334ffb9f077d66b4071e8d23d..8d16386da663ad0b679d6c576f9f7e9ce19e9c64 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -669,7 +669,8 @@ RingAccount::handlePendingCall(PendingCall& pc, bool incoming)
             call->onFailure();
             return true;
         }
-        return false;
+        // Cleanup pending call if call is over (cancelled by user or any other reason)
+        return call->getState() == Call::CallState::OVER;
     }
 
     // Securize a SIP transport with TLS (on top of ICE tranport) and assign the call with it