diff --git a/src/dht.cpp b/src/dht.cpp
index ef694375f52202f3590245b745fee664c2ff58fc..0b6296bafce125103af8c78a272861877a8ab5fa 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -3080,7 +3080,7 @@ Dht::sendNodesValues(const sockaddr *sa, socklen_t salen, TransId tid,
             pk.pack(*st[j].data);
             k++;
             j = (j + 1) % st.size();
-        } while (j != j0 && k < 50);
+        } while (j != j0 && k < 50 && buffer.size() < MAX_VALUE_SIZE);
     }
 
     pk.pack(std::string("t")); pk.pack_bin(tid.size());