merged with call by need bug fix