It is often desirable to allow a robot in a dynamic, uncontrolled environment to interrupt or abandon some task that engages it. To facilitate this, it is helpful to include in the language of plans such control structure as 'Carry out task T1 until condition Q becomes true,' or 'Proceed with the execution of task T1 whenever it does not interfere with task T2.' To define such control structures formally, it is necessary to define what it means to begin carrying out a task, independently of whether the task is completed. This paper presents a formal semantics for a language of plans that includes these control structures, together with concurrency and partial specification. Such a semantics will support the formal verification of plans of this kind.