diff --git a/src/memory.c b/src/memory.c
index 7cf99d0bdaa0a5b5d9473803afae53a4efb7ff51..49dacdd9edc67d0ae96bb65d7eed5ede363c6171 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -289,10 +289,10 @@ char *memory_search(struct mem_searcher *s,
       char *q, *end;
       register struct link *ptr;
       
-      end=haystack+haystacklen+1;
+      end=haystack+haystacklen;
       q=haystack + s->max - sizeof(INT32);
       q=(char *)( ((long)q) & -sizeof(INT32));
-      for(;q<end-sizeof(INT32)+1;q+=s->max)
+      for(;q<=end-sizeof(INT32);q+=s->max)
       {
 	h=tmp=*(INT32 *)q;