A self-corrector for a function
is an efficient machine that computes
correctly using any untrusted black-box that computes
correctly only with a certain probability. The design of self-correctors for non-verifiable functions, typically decryption functions of public-key cryptographies, was investigated. We present a design method for self-correctors that works even when the black-box returns correct output with probability of less than 1/2. For a practical demonstration of the method, we also present examples of self-correctors for the decryption functions of public-key cryptosystems, such as the ElGamal, the Pailler, and the GHV cryptosystems, and for hidden pairings with trapdoors.