diff -r 3949b825f4bf -r faf0414a8b51 libpurple/protocols/irc/parse.c --- a/libpurple/protocols/irc/parse.c Tue Aug 20 14:04:56 2013 +0200 +++ b/libpurple/protocols/irc/parse.c Wed Aug 21 14:59:29 2013 +0200 @@ -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) {