Transformations of attributed program trees form an essential part of compiler optimizations. A tree transformation may invalidate attribute instances, not only in the restructured part of the tree but also elsewhere in the tree. To make the attribution of the tree correct again a re-evaluator has to be activated. Criteria are formulated which allow a delay in calling the re-evaluator. These criteria allow a strategy of repeate~y applying alternate attribute evaluation and tree transformation phases. An attribute evaluation phase consists of a tree walk in which all attribute instances receive their correct values. A tree lransformation phase consists of a tree walk in which as many tree transformations are performed as possible. The transformation phase is never interrupted to carry out a re-evaluation. For re-evaluation purposes an incremental simple multi-pass evaluator is presented, which works optimally in the number of recomputations and in the number of visits to subtrees during each pass.