veeeery partial cherry-pick of c75fcbe20b07fd7518be58bf02ba30d903133449 (cherry picked from commit 4596c17dae1dcb199b9301b7dcfd556bb1c0d7d5)
veeeery partial cherry-pick of c75fcbe20b07fd7518be58bf02ba30d903133449 (cherry picked from commit 4596c17dae1dcb199b9301b7dcfd556bb1c0d7d5)