BACKPORT: component from mainline