diff --git a/lib/modules/Protocols.pmod/DNS.pmod b/lib/modules/Protocols.pmod/DNS.pmod
index 2766fe8b9e0ddb1147146d5f5f0345914ab66c4b..6b44adff9e08ffde1b297c1741d0ff5d4039d00e 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);