The QSIM algorithm of B. Kuipers is used to perform qualitative simulation of continuous dynamic physical systems described using 'weak' modelling primitives. Recently, a phenomenon known as 'chattering' has been described and investigated in the QSIM algorithm. We show that chattering can be split into (at least) two quite distinct phenomena and that in one case it is the non-constructive nature of QSIM that causes chattering. We present a constructive algorithm for performing qualitative simulation of continuous dynamic physical systems. This algorithm is 'event-based' and uses the notion of 'persistence', so that events are only caused by the behaviour of the system and not by the algorithm used to investigate that behaviour. This eliminates one aspect of chattering without recourse to additional information.