backport call doubling
cleanup