Backport of 9c19aff7c7561e3a82978a272ecdaad40dda5c00 from main.
Thanks Simon Charette for the review and implementation idea. Backport of dd1fa3a31b4680c0d3712e6ae122b878138580c7 from main