diff --git a/src/dht.cpp b/src/dht.cpp
index f59041b935bb281a6a33b58948fe0add167d60b4..72ec2dd14d1076f2da2083ca543b16f27a183b6b 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -2550,7 +2550,8 @@ Dht::loadState(const std::string& path)
             auto state = oh.get().as<DhtState>();
             if (logger_)
                 logger_->d("Importing %zu nodes", state.nodes.size());
-            myid = state.id;
+            if (state.id)
+                myid = state.id;
             std::vector<Sp<Node>> tmpNodes;
             tmpNodes.reserve(state.nodes.size());
             for (const auto& node : state.nodes)