Merged from upstream

Merged from upstream