sync with .net: 285a5b1df65f5014901cf6867934ec8c1a581cff