diff --git a/src/dht.cpp b/src/dht.cpp
index 3b5e11df5fbc223e7a7dfd186840c271e07fd406..1bce7b90c24c4daa76e9eb2400fd337b9aec49a7 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -1182,9 +1182,6 @@ void Dht::searchSendAnnounceValue(const std::shared_ptr<Search>& sr) {
                             ++ait;
                         }
                     }
-
-                    if (sr->callbacks.empty() && sr->announce.empty() && sr->listeners.empty())
-                        sr->done = true;
                 }
             };
         DHT_LOG.WARN("[search %s IPv%c] [node %s] sending %s",
@@ -1290,6 +1287,9 @@ Dht::searchStep(std::shared_ptr<Search> sr)
 
         // Announce requests
         searchSendAnnounceValue(sr);
+
+        if (sr->callbacks.empty() && sr->announce.empty() && sr->listeners.empty())
+            sr->done = true;
     }
 
     if (sr->currentlySolicitedNodeCount() < MAX_REQUESTED_SEARCH_NODES) {