--- a/libpurple/protocols/irc/parse.c Wed Nov 12 19:15:24 2014 -0500 +++ b/libpurple/protocols/irc/parse.c Thu Nov 13 00:56:55 2014 -0500 @@ -390,7 +390,7 @@ do { end = strpbrk(cur, "\002\003\007\017\026\037"); - decoded = g_string_append_len(decoded, cur, end ? end - cur : strlen(cur)); + decoded = g_string_append_len(decoded, cur, (end ? (gssize)(end - cur) : (gssize)strlen(cur))); cur = end ? end : cur + strlen(cur); switch (*cur) {