merged in upstream