backports to 1.0, 1.1, 1.2