Abstract. An important aspect in the speci cation of distributed systems is the role of the internal (or unobservable) operation. Such operations are not part of the user interface (i.e. the user cannot invoke them), however, they are essential to our understanding and correct modelling of the system. Various conventions have been employed to model internal operations when specifying distributed systems in Z. If internal operations are distinguished in the speci cation notation, then re nement needs to deal with internal operations in appropriate ways. However, in the presence of internal operations, standard Z re nement leads to undesirable implementations. In this paper we present a generalization of Z re nement, called weak re nement, which treats internal operations di erently from observable operations when re ning a system. We illustrate some of the properties of weak re nement through a speci cation of a telecommunications protocol.