This paper presents a framework for distributed fault detection and isolation in dynamic systems. Our approach uses the dynamic model of each subsystem to derive a set of independent, local diagnosers. If needed, the subsystem model is extended to include measurements and model equations from its immediate neighbors to compute its diagnosis. Our approach is designed to ensure that each subsystem diagnoser provides the correct results, therefore, a local diagnosis result is equivalent to the results that would be produced by a global system diagnoser. We discuss the distribute diagnosis algorithm, and illustrate its application using a multi-tank system.