Initial import from 2.3 to 3.0.