New try, based on the latest source.