the command line to be used to start the process) The last point is possible because the session manager maintains a set of properties for every client (in the X Window System terminology, a property is simply a container for data). These pieces of information can be modified by the client at any time. One of these properties is named RestartCommand, and contains the information on how the client has to be started again. When the session manager requests a client to save its state, the application proceeds as follows: it saves its state in such a way that the states of two different instances can be distinguished; this can be obtained for example by saving the state in a file whose name contains its identifier it stores the specification of how it has to be started again in the RestartCommand property; this property must contain the client identifier because: the application must retain its identifier when started again the identifier is needed to restore the state (for example, it is needed to find the file where its state is stored) The session manager maintains other properties beside RestartCommand. For example, a property specifies how to run the application if the session is destroyed. Local and global state When asking a client to save its state, the window manager can specify whether the local or global state (or both) has to be saved. The difference is whether the result of the save should be visible to the other applications or not. In the case of the text editor, saving the global state means saving the file normally, so that other applications can use the new version of the file. Saving the local state means that a local copy of the file has to be saved, so that other applications can see the file in its original version. An example The following are the main steps in the interaction of a session manager with the hypothetical text editor xyz when this application is started for the first time in a session, then the user logs out and then in again: the application connects to the session manager via the Inter-Client Exchange Protocol the application tells the session manager that this is the first time it is started, and therefore it has no previous identifier (and, therefore, no previous state) the session manager replies by sending the client its unique identifier, say