(*)merge from upstream