diff --git a/src/lib-sieve/plugins/regex/ext-regex.c b/src/lib-sieve/plugins/regex/ext-regex.c
index ce755d3fcd532ab758717935f804a86c14c199bb..a9a39b882cd009c35fad88ebea54f80240625be5 100644
--- a/src/lib-sieve/plugins/regex/ext-regex.c
+++ b/src/lib-sieve/plugins/regex/ext-regex.c
@@ -110,7 +110,7 @@ static const char *_regexp_error(regex_t *regexp, int errorcode)
 		errsize = regerror(errorcode, regexp, errbuf, errsize);
 	 
 		/* We don't want the error to start with a capital letter */
-		errbuf[0] = tolower(errbuf[0]);
+		errbuf[0] = i_tolower(errbuf[0]);
 
 		buffer_append_space_unsafe(error_buf, errsize);
 
diff --git a/src/lib-sieve/sieve-comparators.c b/src/lib-sieve/sieve-comparators.c
index dfbc23519322c6244e8a9aeed59279729e7086ee..d6a571e5e37231b230caf8e45d3e665c8d24e2e1 100644
--- a/src/lib-sieve/sieve-comparators.c
+++ b/src/lib-sieve/sieve-comparators.c
@@ -512,7 +512,7 @@ static bool cmp_i_ascii_casemap_char_match
 	const char *val_begin = *val;
 	const char *key_begin = *key;
 	
-	while ( tolower(**val) == tolower(**key) &&
+	while ( i_tolower(**val) == i_tolower(**key) &&
 		*val < val_end && *key < key_end ) {
 		(*val)++;
 		(*key)++;