Backport from trunk