As circuits are driven down to the nano-scale, the variability in the manufacturing process leads to defect-prone devices. This urges the understanding and the enhancement of the reliability of systems built out of unreliable components in the implementation of modern data processing algorithms. In this work, we in particular mathematically evaluate the performance deterioration of an iterative LDPC decoder implemented with components subject to transient and permanent errors. We in addition propose an algorithm to combat the errors, either present out-of-the-factory or arising from aging, on-the-fly. The work serves as a step-stone toward coping with variability in general systems for modern data processing.