In this thesis, we propose a fault-containing self-stabilizing algorithm for maximal matching in a distributed system. When only one node in the system is incurred a transient fault, our algorithm is capable of containing the fault of its primary variable so that the fault does not spread out and contaminate other nodes. In practice, the probability for a system to encounter the single-fault situation is quite high. Since our algorithm cope with this situation more effectively, it is more valuable from practical point of view.