diff --git a/src/port.c b/src/port.c
index ad59459257125c6bb5c232036661777d00fee637..333bc10efab08b3a44e362bb6f659649fdf2822a 100644
--- a/src/port.c
+++ b/src/port.c
@@ -158,10 +158,10 @@ char *MEMMEM(char *needle, SIZE_T needlelen, char *haystack,
   default:
   {
     SIZE_T i, j;
-    for(i=0; i<haystacklen-needlelen; i++)
+    for(i=0; i <= haystacklen-needlelen; i++)
     {
       for(j=0; j<needlelen; j++)
-	if(haystack[i] != needle[j])
+	if(haystack[i + j] != needle[j])
 	  break;
       if(j==needlelen)
 	return haystack+i;