[SeeRM #8496]
This is the reviewed/updated version of pull request #1950. We're landing this one instead because the other one has a lot of unnecessary commit messages.