The `eq?'ness of syntax objects used to reconstruct the result was broken by disarming. The solution is to reconstruct based on the disarmed syntax object instead of the original. Merge to 5.1.2.
(Makes it easy to know when it breaks, and hopefully to fix it when that happens)