backport from 3.10