diff --git a/src/linematch.c b/src/linematch.c
index c1463fd..17e932d 100644
--- a/src/linematch.c
+++ b/src/linematch.c
@@ -34,14 +34,10 @@
 line_len(const mmfile_t *m)
 {
     char	*s = m->ptr;
-    size_t	n = (size_t)m->size;
     char	*end;
 
-    end = vim_strnchr(s, &n, '\n');
-    if (end)
-	return (size_t)(end - s);
-
-    return (size_t)m->size;
+    end = memchr(s, '\n', (size_t)m->size);
+    return end ? (size_t)(end - s) : (size_t)m->size;
 }
 
 #define MATCH_CHAR_MAX_LEN 800
@@ -171,10 +167,11 @@
 {
     for (int i = 0; i < lnum - 1; i++)
     {
-	size_t n = (size_t)s.size;
+	char *line_end;
 
-	s.ptr = vim_strnchr(s.ptr, &n, '\n');
-	s.size = (int)n;
+	line_end = memchr(s.ptr, '\n', (size_t)s.size);
+	s.size = line_end ? (int)(s.size - (line_end - s.ptr)) : 0;
+	s.ptr = line_end;
 	if (!s.ptr)
 	    break;
 	s.ptr++;
diff --git a/src/strings.c b/src/strings.c
index 120d393..5de3162 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -674,22 +674,6 @@
     return NULL;
 }
 
-// Sized version of strchr that can handle embedded NULs.
-// Adjusts n to the new size.
-    char *
-vim_strnchr(const char *p, size_t *n, int c)
-{
-    while (*n > 0)
-    {
-	if (*p == c)
-	    return (char *)p;
-	p++;
-	(*n)--;
-    }
-
-    return NULL;
-}
-
 /*
  * Version of strchr() that only works for bytes and handles unsigned char
  * strings with characters above 128 correctly. It also doesn't return a
@@ -3558,8 +3542,6 @@
 			str_arg_l = 0;
 		    else
 		    {
-			// Don't put the #if inside memchr(), it can be a
-			// macro.
 			// memchr on HP does not like n > 2^31  !!!
 			char *q = memchr(str_arg, '\0',
 				  precision <= (size_t)0x7fffffffL ? precision
diff --git a/src/version.c b/src/version.c
index fe4e418..d71d4d1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1076,
+/**/
     1075,
 /**/
     1074,
