backport of commit 9025fa2ab15f22031f54584c07993553db69f609