Merging in from upstream Rubber github. Up to 0c91b8066ba1c7d11796f1921c174ca72acfb838