diff --git a/src/ringdht/p2p.cpp b/src/ringdht/p2p.cpp
index e1f30c5963b390d62b316f4c327bcd2e4233861a..049acdf488e2073f6cb3db8210f92f7a1b32786d 100644
--- a/src/ringdht/p2p.cpp
+++ b/src/ringdht/p2p.cpp
@@ -646,9 +646,10 @@ DhtPeerConnector::Impl::eventLoop()
                                             && element.second
                                             && element.second->hasStreamWithId(id));});
                     if (it == servers_.end()) break;
+                    auto peer = it->first.second; // tmp copy to prevent use-after-free below
                     servers_.erase(it);
-                    connectedPeers_.erase(it->first.second);
-                    turnEndpoints_.erase(it->first.second);
+                    connectedPeers_.erase(peer);
+                    turnEndpoints_.erase(peer);
                 }
                 break;