--- Compress-LZF/LZF.xs 2006/09/27 15:52:47 1.21 +++ Compress-LZF/LZF.xs 2006/09/27 19:01:48 1.22 @@ -201,7 +201,10 @@ dst = SvPVX (ret); if (lzf_decompress (src, csize, dst, usize) != usize) - croak ("compressed data corrupted (size mismatch)", csize, skip, usize); + { + SvREFCNT_dec (ret); + croak ("compressed data corrupted (size mismatch)", csize, skip, usize); + } } else {