diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index c1042344525f4254a0cea8f127fb0f8cd220cee9..d240836ff9b9d81eed66ddd3aa04e3640a80197b 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -1423,6 +1423,8 @@ RingAccount::sendTextMessage(const std::string& to, const std::map<std::string,
         dht_.listen<dht::ImMessage>(h, [wshared,token](dht::ImMessage&& msg) {
             if (auto this_ = wshared.lock()) {
                 // check expected message confirmation
+                if (msg.id != token)
+                    return true;
                 auto e = this_->sentMessages_.find(msg.id);
                 if (e == this_->sentMessages_.end()) {
                         RING_DBG("Message not found for %llu", token);