Natural language understanding (NLU) by language-endowed intelligent agents (LEIAs) is modeled as a multi-stage process that involves extensive reasoning both during and between stages. The LEIA attempts to arrive at an actionable interpretation of each input as defined by its plans and goals. The paper describes: (a) how NLU is integrated with general reasoning in an agent architecture, (b) how language understanding is staged according to depth/precision and complexity of analysis, (c) how a large number of difficult linguistic phenomena are treated in a unified framework, and (d) how natural language can be approached as it occurs in real life, not sanitized or simplified, and without the unnecessary and unrealistic expectation that every utterance must be – or even, in principle, can be – fully understood by the interlocutor. The paper makes descriptive, theoretical, and methodological contributions. It addresses technological issues – including the status of the implementation, system evaluation, and scalability – only in passing, as they involve complex problems that cannot be adequately treated in the available space.