--- JSON-XS/XS.xs 2007/07/01 23:40:07 1.49 +++ JSON-XS/XS.xs 2007/07/02 00:29:38 1.50 @@ -526,9 +526,12 @@ encode_av (enc, (AV *)sv); else if (svt < SVt_PVAV) { - if (SvNIOK (sv) && SvIV (sv) == 0) + STRLEN len = 0; + char *pv = svt ? SvPV (sv, len) : 0; + + if (len == 1 && *pv == '0') encode_str (enc, "false", 5, 0); - else if (SvNIOK (sv) && SvIV (sv) == 1) + else if (len == 1 && *pv == '1') encode_str (enc, "true", 4, 0); else croak ("cannot encode reference to scalar '%s' unless the scalar is 0 or 1",