Abstract. This paper deals with plan execution on agents/robots in highly dynamic environments. Besides a formal semantics of plan execution and a representation of plans as programs, we introduce the concept of plan invariants. Plan invariants are similar to loop invariants in imperative programs in that they have to be true during the whole plan execution cycle. Once a plan invariant fails the plan execution is stopped and other plans that are more appropriate in the current context are considered for execution instead. The use of plan invariants allows for an early detection of problems. Plan assumptions that are required for a plan to succeed are explicitly represented by plan invariants.