forward merge from 3.1