Two different schemes are presented to make commit protocols fault-tolerant. The first scheme ensures that a failed site can directly recover to a state which is consistent with all other sites, using only its local information. This scheme can only make commit protocols resilient to a single site failure. The second scheme ensures that failed sites can recover to a state consistent with all others with as few information exchanges as possible. This scheme can make commit protocols resilient to any type of site failure.