char *str;
        mflash_bank->rst_pin.num = strtoul(CMD_ARGV[2], &str, 0);
        if (*str)
-               mflash_bank->rst_pin.port[0] = (uint16_t)tolower(str[0]);
+               mflash_bank->rst_pin.port[0] = (uint16_t)
+                               tolower((unsigned)str[0]);
 
        mflash_bank->target = target;
 
 
 
     memcpy(buf, strObjPtr->bytes, strObjPtr->length + 1);
     for (i = 0; i < strObjPtr->length; i++)
-        buf[i] = tolower(buf[i]);
+        buf[i] = tolower((unsigned)buf[i]);
     return Jim_NewStringObjNoAlloc(interp, buf, strObjPtr->length);
 }
 
 
     memcpy(buf, strObjPtr->bytes, strObjPtr->length + 1);
     for (i = 0; i < strObjPtr->length; i++)
-        buf[i] = toupper(buf[i]);
+        buf[i] = toupper((unsigned)buf[i]);
     return Jim_NewStringObjNoAlloc(interp, buf, strObjPtr->length);
 }
 
                case '8':
                case '9':
                        accum = 0;
-                       while (isdigit(*fmt) && (fmtLen > 0)) {
+                       while (isdigit((unsigned)*fmt) && (fmtLen > 0)) {
                                accum = (accum * 10) + (*fmt - '0');
                                fmt++;  fmtLen--;
                        }
 
        }
 }
 
-static int hextoint(char c)
+static int hextoint(int c)
 {
        if (c>='0'&&c<='9')
        {
 
        const char *result;
        int reslen;
        struct tcl_connection *tclc;
-       char in[256];
+       unsigned char in[256];
 
        rlen = read_socket(connection->fd, &in, sizeof(in));
        if (rlen <= 0) {
 
 int telnet_input(struct connection *connection)
 {
        int bytes_read;
-       char buffer[TELNET_BUFFER_SIZE];
-       char *buf_p;
+       unsigned char buffer[TELNET_BUFFER_SIZE];
+       unsigned char *buf_p;
        struct telnet_connection *t_con = connection->priv;
        struct command_context *command_context = connection->cmd_ctx;
 
                switch (t_con->state)
                {
                        case TELNET_STATE_DATA:
-                               if (*buf_p == '\xff')
+                               if (*buf_p == 0xff)
                                {
                                        t_con->state = TELNET_STATE_IAC;
                                }
                        case TELNET_STATE_IAC:
                                switch (*buf_p)
                                {
-                                       case '\xfe':
+                                       case 0xfe:
                                                t_con->state = TELNET_STATE_DONT;
                                                break;
-                                       case '\xfd':
+                                       case 0xfd:
                                                t_con->state = TELNET_STATE_DO;
                                                break;
-                                       case '\xfc':
+                                       case 0xfc:
                                                t_con->state = TELNET_STATE_WONT;
                                                break;
-                                       case '\xfb':
+                                       case 0xfb:
                                                t_con->state = TELNET_STATE_WILL;
                                                break;
                                }
 
 #define SVFP_CMD_INC_CNT                       1024
 static int svf_read_command_from_file(int fd)
 {
-       char ch, *tmp_buffer = NULL;
+       unsigned char ch;
+       char *tmp_buffer = NULL;
        int cmd_pos = 0, cmd_ok = 0, slash = 0, comment = 0;
 
        while (!cmd_ok && (read(fd, &ch, 1) > 0))