based on git revision 398e6a2d2de620e023e789675d1c94a3df00cd32.
