diff --git a/ChangeLog b/ChangeLog
index dbc7adeefbfa334436bbb2cc088b57b613be87b0..04a769266b4fdf947cb4177eec90c347a9fa349e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2007-07-09  David Lawrence Ramsey  <pooka109@gmail.com>
 
+	* chars.c (nstrcasestr, mbstrcasestr, revstrstr, revstrcasestr,
+	mbrevstrcasestr): Fix typo that broke the check for needle's
+	being blank.
 	* chars.c (mbstrncasecmp, mbstrnlen, mbstrpbrk,
 	has_blank_mbchars): Simplify by using for loops instead of while
 	loops where possible, to match the single-byte versions of these
diff --git a/src/chars.c b/src/chars.c
index 4f393a3151b72fe83095546bea2433213d10e779..043522aa07318e656ab413e93700377d77debf07 100644
--- a/src/chars.c
+++ b/src/chars.c
@@ -603,7 +603,7 @@ char *nstrcasestr(const char *haystack, const char *needle)
 {
     assert(haystack != NULL && needle != NULL);
 
-    if (needle == '\0')
+    if (*needle == '\0')
 	return (char *)haystack;
 
     for (; *haystack != '\0'; haystack++) {
@@ -631,7 +631,7 @@ char *mbstrcasestr(const char *haystack, const char *needle)
 
 	assert(haystack != NULL && needle != NULL);
 
-	if (needle == '\0')
+	if (*needle == '\0')
 	    return (char *)haystack;
 
 	r_mb = charalloc(MB_CUR_MAX);
@@ -693,7 +693,7 @@ char *revstrstr(const char *haystack, const char *needle, const char
 {
     assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
-    if (needle == '\0')
+    if (*needle == '\0')
 	return (char *)rev_start;
 
     for (; rev_start >= haystack; rev_start--) {
@@ -718,7 +718,7 @@ char *revstrcasestr(const char *haystack, const char *needle, const char
 {
     assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
-    if (needle == '\0')
+    if (*needle == '\0')
 	return (char *)rev_start;
 
     for (; rev_start >= haystack; rev_start--) {
@@ -748,7 +748,7 @@ char *mbrevstrcasestr(const char *haystack, const char *needle, const
 
 	assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
-	if (needle == '\0')
+	if (*needle == '\0')
 	    return (char *)rev_start;
 
 	r_mb = charalloc(MB_CUR_MAX);