Merged with upstream changes in groovy_dev