Index: ext/iconv/iconv.c =================================================================== --- ext/iconv/iconv.c (revision 22918) +++ ext/iconv/iconv.c (working copy) @@ -460,8 +460,8 @@ if (0 <= outlen && outlen <= sizeof(buffer)) { outlen = sizeof(buffer) - outlen; if (NIL_P(error) || /* something converted */ - outlen > inptr - tmpstart || /* input can't contain output */ - (outlen < inptr - tmpstart && inlen > 0) || /* something skipped */ + outlen > (size_t)(inptr - tmpstart) || /* input can't contain output */ + (outlen < (size_t)(inptr - tmpstart) && inlen > 0) || /* something skipped */ memcmp(buffer, tmpstart, outlen)) /* something differs */ { if (NIL_P(str)) {