based on git revision b4ea2f8dac09ab42636ae812fd96fcc0f703d35b.
