We propose a repeated moral hazard model with full commitment and limited punishment to study the problem of aid allocation in environments characterized by asymmetric information. The donor (principal) finances a three-period development program and the elite of the recipient country (agent), involved in the realization of the project, can affect the final output through adequate policies. The donor has the goal to help the poor of the recipient country, but she may also be conditioned by non altruistic motives. We show that when the moral hazard problem is relevant, under a wide set of parameter values, optimal aid contracts should be conditional on the previous result of the project. We distinguish between weak conditionality, which means that aid depends only on the previous performance of the project and strong conditionality, which means that aid depends on the whole history of the project. Unconditional aid may be an optimal contractual arrangement for the donor if the moral hazard issue is not very important or if the donor gives aid merely for strategic or economic reasons. An entirely altruistic donor will never provide unconditional aid. On the other hand, if she has a strong desire to help the recipient she should never deny aid to it.