Merged with updates from upstream