Applied upstream as r3028 r3025 r3024