diff --git a/lib/modules/Protocols.pmod/DNS.pmod b/lib/modules/Protocols.pmod/DNS.pmod
index 80eac245ac99f8f88e8a67076143a0eac3757e9c..aebeacc13d261b4fd694d6517da1cc0b1259d756 100644
--- a/lib/modules/Protocols.pmod/DNS.pmod
+++ b/lib/modules/Protocols.pmod/DNS.pmod
@@ -116,7 +116,7 @@ class protocol
   mixed *decode_entries(string s,int num, int *next)
   {
     string *ret=({});
-    for(int e=0;e<num;e++)
+    for(int e=0;e<num && next[0]<strlen(s);e++)
     {
       mapping m=([]);
       m->name=decode_domain(s,next);