It seems clear that cooperation when cheating would go undetected - for example, in many-person prisoner's dilemmas or "tragedy of the commons" cases - is a precondition of the functioning of modern social institutions. Such cooperation seems difficult to explain in evolutionary terms, however, since those who are disposed to cheat seem to enjoy a systematic advantage relative to those who are not. Further- more, the appeal to mechanisms for the detection and punishment of noncooperation, since those mechanisms themselves presuppose cooperation, merely pushes the problem one step back. In this paper I argue that morality plays an ineliminable role in the explanation of the forms of cooperation in question. Moreover, I provide a schema for the evolution of morality in the face of the advantages that those disposed to cheat apparently enjoy.