Most transplanted kidneys are from cadavers, but there are also substantial numbers of transplants from live donors. Recently, there have started to be kidney exchanges involving two donor-patient pairs such that each donor cannot give a kidney to the intended recipient because of immunological incompatibility, but each patient can receive a kidney from the other donor. Exchanges are also made in which a donor-patient pair makes a donation to someone on the queue for a cadaver kidney, in return for the patient in the pair receiving the highest priority for a compatible cadaver kidney when one becomes available. We explore how such exchanges can be arranged efficiently and incentive compatibly. The problem resembles some of the housing' problems studied in the mechanism design literature for indivisible goods, with the novel feature that while live donor kidneys can be assigned simultaneously, the cadaver kidneys must be transplanted immediately upon becoming available. In addition to studying the theoretical properties of the design we propose for a kidney exchange, we present simulation results suggesting that the welfare gains would be substantial, both in increased number of feasible live donation transplants, and in improved match quality of transplanted kidneys.