diff --git a/src/chars.c b/src/chars.c
index 4cfe807b17c75229eeb5c26e3f08b0c45e415317..2745ef33a774d0ac3cc8a3f6f7fd5a630fdb6115 100644
--- a/src/chars.c
+++ b/src/chars.c
@@ -530,6 +530,9 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
 		if (*s1 != *s2)
 		    return (unsigned char)*s1 - (unsigned char)*s2;
 
+		if (bad1 != bad2)
+		    return (bad1 ? 1 : -1);
+
 		s1++; s2++; n--;
 		continue;
 	    }