Available online xxxx JEL classification: C70 D44Keywords: Bayesian mechanism design Algorithmic mechanism design Incentive compatibility Multi-dimensional preferences Optimally allocating cellphone spectrum, advertisements on the Internet, and landing slots at airports is computationally intractable. When the participants may strategize, not only must the optimizer deal with complex feasibility constraints but also with complex incentive constraints. We give a very simple method for constructing a Bayesian incentive compatible mechanism from any, potentially non-optimal, algorithm that maps agents' reports to an allocation. The expected welfare of the mechanism is, approximately, at least that of the algorithm on the agents' true preferences. The construction is based on a maximum weight matching in the type space of each agent that be calculated quickly when the type spaces are reasonably sized. Furthermore, the computation can be performed independently for each agent and, therefore, scales well with the number of agents. A similar construction was previously given by Hartline and Lucier (2010) for agents with single-dimensional types; ours allows multi-dimensional types.