--- Compress-LZF/LZF.xs 2007/04/16 20:05:33 1.24 +++ Compress-LZF/LZF.xs 2008/01/09 20:41:18 1.25 @@ -287,7 +287,11 @@ int deref = !SvROK (sv); if (!storable_mstore) - need_storable (); + { + PUTBACK; + need_storable (); + SPAGAIN; + } if (deref) sv = newRV_noinc (sv); @@ -365,7 +369,11 @@ sv_chop (sv, SvPVX (sv) + 2); if (!storable_mstore) - need_storable (); + { + PUTBACK; + need_storable (); + SPAGAIN; + } PUSHMARK (SP); XPUSHs (sv); @@ -409,7 +417,11 @@ case MAGIC_R: handle_MAGIC_R: if (!storable_mstore) - need_storable (); + { + PUTBACK; + need_storable (); + SPAGAIN; + } PUSHMARK (SP); XPUSHs (sv);