An important behavioural property for sets of active database rules is that of termination. In current commercial database systems, termination is guaranteed by imposing a fixed upper limit on the number of recursive rule firings that may occur. This can have undesirable effects such as prematurely halting correct executions. We describe a new approach based on a dynamic upper limit to the number of rule firings. This limit reflects knowledge about past rule behaviour on the database and provides a more accurate measure for when the DBMS should terminate rule execution. The approach incurs little cost and can easily be integrated with current techniques for static analysis of active rules.