Explanations for expert systems are best provided in context, and, recently, many systems have used some notion of context in different ways in their explanation module. For example, some explanation systems take into account a user model. Others generate an explanation depending on the preceding and current discourse. In this article, we bring together these different notions of context as elements of a global picture that might be taken into account by an explanation module, depending on the needs of the application and the user. We characterize each of these elements, describe the constraints they place on communication, and present examples to illustrate the points being made. We discuss the implications of these different aspects of context on the design of explanation facilities. Finally, we describe and illustrate with examples, an implemented intention-based planning framework for explanation that can take into account the different aspects of context discussed above.