diff --git a/ChangeLog b/ChangeLog
index 33f4e35c2614faa7fa3fc3ccdef52c35db9e51c5..3c8217abefd85f0627d197d0ad9a06b4e54f3d64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -167,6 +167,8 @@ CVS code -
   is_blank_char()
 	- Rewrite to use ctype functions instead of checking directly
 	  for spaces and tabs. (DLR)
+  revstrstr(), revstristr()
+	- Add asserts. (DLR)
 - winio.c:
   titlebar()
 	- Rename some variables for consistency, make space an int
diff --git a/src/utils.c b/src/utils.c
index 36e4a2e168559c5b0f4e7e72c6a7637a6b7d05ba..f471ef5fd5c79a4f0ba614ff603dcd79a80fed02 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -209,8 +209,7 @@ const char *nstristr(const char *haystack, const char *needle)
     assert(haystack != NULL && needle != NULL);
 
     for (; *haystack != '\0'; haystack++) {
-	const char *p = haystack;
-	const char *q = needle;
+	const char *p = haystack, *q = needle;
 
 	for (; tolower(*p) == tolower(*q) && *q != '\0'; p++, q++)
 	    ;
@@ -228,28 +227,36 @@ const char *nstristr(const char *haystack, const char *needle)
 const char *revstrstr(const char *haystack, const char *needle, const
 	char *rev_start)
 {
+    assert(haystack != NULL && needle != NULL && rev_start != NULL);
+
     for (; rev_start >= haystack; rev_start--) {
 	const char *r, *q;
 
 	for (r = rev_start, q = needle; *q == *r && *q != '\0'; r++, q++)
 	    ;
+
 	if (*q == '\0')
 	    return rev_start;
     }
+
     return NULL;
 }
 
 const char *revstristr(const char *haystack, const char *needle, const
 	char *rev_start)
 {
+    assert(haystack != NULL && needle != NULL && rev_start != NULL);
+
     for (; rev_start >= haystack; rev_start--) {
 	const char *r = rev_start, *q = needle;
 
 	for (; tolower(*q) == tolower(*r) && *q != '\0'; r++, q++)
 	    ;
+
 	if (*q == '\0')
 	    return rev_start;
     }
+
     return NULL;
 }
 #endif /* !NANO_SMALL */