diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index e5b768c5ec7bf9487477fdfc64be6c21184add3b..3c146f6d49c761ddbaf13522ad2705e1f77f7607 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -238,7 +238,7 @@ static constexpr const char * DEFAULT_TURN_REALM = "ring";
 constexpr const char* const RingAccount::ACCOUNT_TYPE;
 /* constexpr */ const std::pair<uint16_t, uint16_t> RingAccount::DHT_PORT_RANGE {4000, 8888};
 
-static std::uniform_int_distribution<dht::Value::Id> udist;
+using ValueIdDist = std::uniform_int_distribution<dht::Value::Id>;
 
 static const std::string
 stripPrefix(const std::string& toUrl)
@@ -453,7 +453,7 @@ RingAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std::
             sthis->registerDhtAddress(*ice);
 
             // Next step: sent the ICE data to peer through DHT
-            const dht::Value::Id callvid  = udist(sthis->rand_);
+            const dht::Value::Id callvid  = ValueIdDist()(sthis->rand_);
             const auto callkey = dht::InfoHash::get("callto:" + dev.toString());
             dht::Value val { dht::IceCandidates(callvid, ice->packIceMsg()) };