> Software types are likely to cheat and cause their code to break by doing > things only when a state is entered or exitted. AS as "software type", I usually create three states in such cases: One for the "entry" state, one for "polling, looping, etc", and one for the "exit" state. Yep. That'd be the "pure" state machine... I don't know if *this* is cheating or not, but sometimes the next state to be transitioned to from the current state depends on the previous state. That's cheating too. Actually, it sounds like a particular case of entry cheating (steady state means that the previous state is the current state, right? So special state entry code is the same as being dependent on the previous state...) BillW