A major step in model-based fault diagnosis is the generation of candidate components which might be responsible for the observed symptom of malfunction. After the candidates are determined, each component can then be examined in turn. It is useful to be able to choose the most likely candidate to focus on first so that the faulty parts can be located sooner. This paper presents some topological heuristics for ordering candidates according to their relationships with violations and corroborations. Candidates are also reordered or eliminated when new information is acquired during diagnosis. These ordering and reordering techniques are shown to be effective for model-based diagnosis. For single fault cases, the average length of diagnosis is log n, where eta is the number of components. In general, the average length of diagnosis is k log n when there are k faults in the device initially.