merge v3.2 from upstream