The standard dispatching mechanisms built into programming languages sometimes fail to satisfy the needs of the programmer. In the case of Java, the need for more flexibility has led to the development of a number of tools, including visitors and multi‐method extensions, that each add some particular functionality, but lack the generality necessary to support user‐defined dispatching mechanisms. In this paper we advocate a more modular approach to dispatching, and we present a tool, PolyD, that allows the programmer to design custom dispatching strategies and to parametrize many aspects of the dispatching process. PolyD exhibits excellent performance and compares well against existing tools. Copyright © 2007 John Wiley & Sons, Ltd.