using the patch from the PR and some hacking by myself to avoid code
redundancy.
Passes the regression tests I've added.
(How many weeks of purgatory do I get for the cpp(1) hack to avoid
code redundancy? I guess I can always say it was inspired by some old
version of our md5 sources...)