First archive is an updated version of http://nishi.dreamhosters.com/u/lzma.rar (which is based on 4.65)
ie just sources necessary to build lzmautil without weird subdirs.
And 2nd is modified version, which breaks compatibility, but compresses a little better.
The 3rd link is the patch for 9.22 vs 9.22x.
This patch fixes the only real design error in lzma which I was able to find -
its quite unlikely that masked literals would be equal to their mask
(because otherwise we could simply increment the length of previous match
and not encode the current literal at all)
so the probability of last bit of masked literal being zero should be
low if mask's bit0 is 0, and high if bit0 is 1 (to make it likely that
literal's bit0 is different from mask's bit0).
The probabilities of last bits correspond to indexes 128..255 in litprob table
because its actually a binary tree.
Also we can't set them to 0 because, although unlikely, sometimes literals
in lzma do match their mask (for example, in case of matches longer than 273 bytes).
But still, this fix should slightly improve the compression in all cases without
any speed impact (because only stats init is affected).
So, I suppose, despite incompatibility, it should still have some uses, like in freearc.
book1 768771 wcc386 536624
book1.lzma 260967 wcc386.lzma 274206
book1.lzmax 260917 wcc386.lzmax 273912