Structure models for model-based diagnosis are incomplete due to the assumption that the structure of the artifact is known. A consequence of this incompleteness is that the treatment of topological faults is difficult and computationally expensive. Functional models make no such assumptions, so that topological faults are easily handled. The paper describes how well functional diagnosis handles the major kinds of topological faults in sequential imperative programs, in particular, in procedural and non-procedural abstractions. A simple functional diagnosis algorithm is given and applied to an example modeled in the functional representation language ZD.