This is an investigation of human-machine interaction in a natural language environment where mistakes leading to misunderstandings can occur. Focussing on recognition of the plan underlying a user's utterances, the research has two objectives: (1) to isolate and model the kinds of knowledge that hearers use to infer speakers' plans and to revise their inferences when they do not fit the current context, and (2) to develop computational techniques that draw on that knowledge to revise such inferences. Since speakers and hearers may not have the same beliefs, perceptions, or goals at each point in a conversation, mistakes can occur when a hearer interprets a speaker's utterances. This is a problem that must be overcome if robust natural language processing systems are to be developed. In this research the problem is addressed by developing a language understanding framework which is less restrictive than earlier ones.