In addition to simplifying the code, this reduces the number of writes. Backport of bd059e3f8c6311dcaf8afe5e29ef373f7f84cf26 from master