diff -r 31c7f587968d -r e9b59dd16117 libpurple/protocols/irc/parse.c --- a/libpurple/protocols/irc/parse.c Thu Aug 22 00:33:01 2013 +0530 +++ b/libpurple/protocols/irc/parse.c Thu Aug 22 01:36:58 2013 +0530 @@ -384,7 +384,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 ? (goffset)(end - cur) : strlen(cur))); cur = end ? end : cur + strlen(cur); switch (*cur) {