diff --git a/src/dht.cpp b/src/dht.cpp
index 1bce7b90c24c4daa76e9eb2400fd337b9aec49a7..2e30b093ae73ba13a76f30f2d3ceb21102f4a7ba 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -404,9 +404,10 @@ struct Dht::SearchNode {
         if ((ack == acked.cend() or not ack->second) and (gs == getStatus.cend()
                                                           or not gs->second or not gs->second->pending()))
             return time_point::min();
-        return (ack == acked.cend() or not ack->second or ack->second->pending()) ?
-                time_point::max() :
-                ack->second->reply_time + type.expiration - REANNOUNCE_MARGIN;
+        return ((gs != getStatus.cend() and gs->second and gs->second->pending())
+                or ack == acked.cend() or not ack->second or ack->second->pending()) ?
+                    time_point::max() :
+                    ack->second->reply_time + type.expiration - REANNOUNCE_MARGIN;
     }
 
     /**