Distributed channel allocation algorithms have received considerable attention due to their high reliability, and scalability. However, in these algorithms, a borrower needs to consult with its interference neighbors in order to borrow a channel. Thus, a borrower fails to borrow channels when it cannot communicate with anyone of its interference neighbors. In real-life networks, under heavy traffic load, a cell has a large probability to experience an intermittent network congestion or even a communication link failure. In these algorithms, since a cell has to consult with a large number of interference neighbors to borrow a channel. The failure rate will be much higher under heavy traffic load. In this paper, we first propose a fault-tolerant channel acquisition algorithm which tolerates communication link failures and node (MH or MSS) failures. Then, we present a channel selection algorithm and integrate it into the distributed acquisition algorithm. Simulation results show that our algorithm significantly reduces the failure rate under network congestion, communication link failures, and node failures compared to non-fault-tolerant channel allocation algorithms.