Pervasive computing environments require applications that reduce user distraction from other tasks. Context-awareness attempts to address this problem by making applications more adaptive and autonomous. Context-aware pervasive systems rely on information about the context and user preferences to guide their behaviour. However, context-aware applications do not always behave as users expect, and can cause users to feel loss of control over their applications. To mitigate these problems, context-aware systems must provide mechanisms to strike a suitable balance between user control and software autonomy. This has implications on the way that middleware for context-aware systems must be designed. Most current middleware solutions for context aware systems support the gathering and management of context information, while some also support the management and evaluation of user preferences; however, few middleware solutions address the issue of providing transparency (to facilitate user understanding of application actions) and user control. This paper describes the most relevant work in this area, as well as ongoing research on extending a previously developed middleware to better support transparency and control.