diff --git a/tests/fct.h b/tests/fct.h
index c49abda..78bc27b 100644
--- a/tests/fct.h
+++ b/tests/fct.h
@@ -334,7 +334,7 @@
     k = (char*)malloc(sizeof(char)*klen+1);
     for ( i=0; i != klen; ++i )
     {
-        k[i] = (char)tolower(s[i]);
+        k[i] = (char)tolower((int)s[i]);
     }
     return k;
 }
@@ -428,7 +428,7 @@
     {
         return 0;
     }
-    while (tolower(*s1) == tolower(*s2))
+    while (tolower((int)*s1) == tolower((int)*s2))
     {
         if (*s1 == '\0')
             return 1;
@@ -574,7 +574,7 @@
     }
     for ( ; check_i != 0; --check_i, --str_i)
     {
-        if ( tolower(str[str_i]) != tolower(check[check_i]) )
+        if ( tolower((int)str[str_i]) != tolower((int)check[check_i]) )
         {
             return 0; /* Found a case where they are not equal. */
         }
