rebase of #7585

#7585