diff --git a/lib/url.c b/lib/url.c
index 078b74c47d92814ccaf818d81fca16191f9fedd4..87d1685f297dc813ea8803d9c390d03194146bb0 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -2326,7 +2326,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
 
 	/* Now, build <protocol>_proxy and check for such a one to use */
 	while(*protop)
-	  *envp++ = tolower(*protop++);
+	  *envp++ = tolower((int)*protop++);
 
 	/* append _proxy */
 	strcpy(envp, "_proxy");
@@ -2349,7 +2349,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
 	if(!prox && !strequal("http_proxy", proxy_env)) {
           /* There was no lowercase variable, try the uppercase version: */
 	  for(envp = proxy_env; *envp; envp++)
-	    *envp = toupper(*envp);
+	    *envp = toupper((int)*envp);
 	  prox=curl_getenv(proxy_env);
 	}
 
@@ -2578,7 +2578,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
     if(type) {
       char command;
       *type=0;                     /* it was in the middle of the hostname */
-      command = toupper(type[6]);
+      command = toupper((int)type[6]);
       switch(command) {
       case 'A': /* ASCII mode */
 	data->set.ftp_ascii = 1;