--- Compress-LZF/LZF.xs 2001/09/27 20:08:05 1.5 +++ Compress-LZF/LZF.xs 2002/02/27 20:51:21 1.8 @@ -230,7 +230,8 @@ XPUSHs (sv_2mortal (newSVpvn ("\02", 1))); /* 02 == MAGIC_undef */ else if (SvTYPE(sv) != SVt_IV && SvTYPE(sv) != SVt_NV - && SvTYPE(sv) != SVt_PV) /* mstore */ + && SvTYPE(sv) != SVt_PV + && SvTYPE(sv) != SVt_PVMG) /* mstore */ { if (!storable_mstore) need_storable (); @@ -267,10 +268,8 @@ PROTOTYPE: $ PPCODE: - if (!SvPOK (sv)) - croak ("Compress::LZF::sthaw(): argument must be a string"); - - if (IN_RANGE (SvPV_nolen (sv)[0], MAGIC_LO, MAGIC_HI)) + SvGETMAGIC (sv); + if (SvPOK (sv) && IN_RANGE (SvPV_nolen (sv)[0], MAGIC_LO, MAGIC_HI)) { switch (SvPVX (sv)[0]) {