Merged with upstream

Fetched and merged from the original project master.