We present Prophet, a novel patch generation system that works with a set of successful human patches obtained from opensource software repositories to learn a probabilistic, applicationindependent model of correct code. It generates a space of candidate patches, uses the model to rank the candidate patches in order of likely correctness, and validates the ranked patches against a suite of test cases to find correct patches. Experimental results show that, on a benchmark set of 69 real-world defects drawn from eight open-source projects, Prophet significantly outperforms the previous state-of-the-art patch generation system. Categories and Subject Descriptors F.3.2 [Semantics of Programming Languages]: Program Analysis; D.2.5 [SOFTWARE ENGINEERING]: Testing and Debugging Keywords Program repair, Code correctness model, Learning correct code