diff --git a/src/dht.cpp b/src/dht.cpp
index 55d7fafb86692d3c31018f95dca11ff3a42c8866..23ed55418e94646a5224eaec0ef962e230a6096a 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -1201,7 +1201,7 @@ Dht::Search::getUpdateTime(time_point now) const
         if (not sn.candidate and ++i == TARGET_NODES)
             break;
     }
-    if (not callbacks.empty() and d == 0) {
+    if ((not callbacks.empty() or not announce.empty()) and d == 0) {
         // If all synced/updated but some callbacks remain, step now to clear them
         return now;
     }