Abstract By separating the structural configuration issues from functional component actions, configuration languages provide a support for flexibility. The aim of the paper1 is to show that in addition they offer a good basis for the development of fault-tolerant modules. After a description of the principles of configuration languages, with Conic®2 examples, some expressions to be integrated in configuration languages in order to specify redundancy in software components are proposed. This approach provides the programmer with an uniform framework for the development of fault-tolerant programs, so that he can select the redundancy he wants to affect to every application component, while being released from the redundancy runtime monitoring. Unlike other approaches, this proposal, owing to modularity and hierarchical composition capacities offered by configuration languages, allows to implement selective software fault-tolerance. The principles described in this model have been implemented and tested in the Conic® environment for distributed systems.