This paper deals with the observer problem for dynamical systems in a behavioral context. We are given a dynamical system together with a partition of the system variables into a set of known or measured variables and a set of unknown, to be estimated variables. The observer problem is to find a system that produces an estimate of the unknown variables on the basis of the known or measured variables. For a given plant and partition, we establish a characterization of all error behaviors that can be achieved by interconnecting the plant with some observer. The main result of this paper is a very general, behavioral formulation of an internal model principle for observers. We will show that a nonintrusive observer achieves a stable error beha...