Many data integration systems use the mediation architecture to provide integrated access to distributed data sources. A mediator is a software device that supports a mediation schema which captures the users requirements, and a set of mappings (mediation queries) between the mediation schema and the local data sources. Mediation queries are used to answer queries posed to a mediator. One of the main challenges in data integration systems is to maintain the mediation schema consistent with the user requirements evolution and to maintain the mediation queries consistent both with the mediation schema evolution and with source evolution. In this work, we address the problem of how to maintain mediation schema and mediation queries when user requirements or data sources schemas change. We have defined a set of propagation rules which must be applied after a source schema change or a user requirement change. We also propose the use of some quality factors to determine if a given propagation rule increases or decreases the level of quality of the system.