reverse-merged from commit ed555a4bcc73517ba1fc46376e1f15179e0b6d9e
#4