Software maintenance is responsible for as much as two thirds of the cost of any software, and is consequently an important research area. In this paper we focus on the change propagation problem: given a primary change that is made in order to meet a new or changed requirement, what additional, secondary, changes are needed? We build on previous work that has proposed to use a BDI (belief-desire-intention) agent framework to propagate changes by fixing violations of consistency constraints. One question that needs to be answered as part of this framework is how to select between different applicable (repair) plan instances to fix a given constraint violation? We address this issue by defining a suitable notion of repair plan cost that incorporates both conflict between plans, and synergies between plans. We then develop an algorithm, based on the notion of cost, that finds cheapest options and proposes them to the user. Categories and Subject Descriptors D.2.7 [Software Engineering]:...