based on git revision c112e3c3c26737153ef8e55f3c0bb309040ba7c3.
