#28: manually merged