In this paper, an efficient model-based diagnostic process is described for systems whose components possess a causal relation between their inputs and their outputs. In this diagnostic process, a set of focuses on likely broken components is first determined. Secondly, for each focus, the most informative probing point within the focus can be determined. Both these steps have a worst-case time complexity of O(n2), wherenis the number of components. If the connectivity of the components is low, however, the diagnostic process shows a linear time complexity. We also show how the described diagnostic process can be applied in dynamic systems and systems containing loops. When diagnosing dynamic systems, it is possible to choose between detecting intermittent faults or improving the diagnostic precision by assuming non-intermittency.