diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 52dbce05c0829c0d5cb6daeabde24c3fe221e7b6..0ac7b8d17dbed7def7f67ab02f908353cc197a54 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -310,7 +310,6 @@ RingAccount::newIncomingCall(const std::string& from, const std::map<std::string
     auto call_it = pendingSipCalls_.begin();
     while (call_it != pendingSipCalls_.end()) {
         auto call = call_it->call.lock();
-        call->updateDetails(details);
         if (not call) {
             RING_WARN("newIncomingCall: discarding deleted call");
             call_it = pendingSipCalls_.erase(call_it);
@@ -319,6 +318,7 @@ RingAccount::newIncomingCall(const std::string& from, const std::map<std::string
                                                      call_it->from_cert->issuer->getId().toString() == from)) {
             RING_DBG("newIncomingCall: found matching call for %s", from.c_str());
             pendingSipCalls_.erase(call_it);
+            call->updateDetails(details);
             return call;
         } else {
             ++call_it;