pulled in changes from portage upstream