The unpredictability of business processes requires that workflow systems support exception handling with the ability to dynamically adapt to the changing environment. Traditional approaches to handling this problem have fallen short, providing little support for change, particularly once the process has begun execution. Further, exceptions vary widely in their character and significance, challenging the application of any single approach to handling them. We briefly discuss the classification of exceptions, highlighting differing impacts on the workflow model. Based on this discussion we suggest principal goals to address in the development of adaptive workflow support, including strategies for avoiding exceptions, detecting them when they occur, and handling them at various levels of impact. We then identify a number of specific approaches to supporting these goals within the design of a workflow system infrastructure. Finally, we describe the implementation of many of these approaches in the Endeavors workflow support system.