2.0 merge 1.9 by hand

All except 000185d903db89fc651dd0df77c766b9fbb4eb9a