Abstract: A general multi-user undo/redo model must satisfy several requirements. It must be compatible with an existing single-user undo/redo model, give individual users autonomy in executing undo/redo commands, support undo/redo of remote commands and the remote effects of local commands, be independent of the coupling, multicast, and concurrency control models, and allow undo/redo of arbitrary commands. We have developed a multi-user undo/redo model for meeting these requirements. The model constructs the command history of a particular user by including all local commands and those remote commands whose results were made visible to that user. It allows a user to undo/redo corresponding commands in the command histories of all users of a program. Moreover, it allows a user to undo/redo both symmetric user-interface commands and asymmetric collaboration commands. We have implemented the model in a collaboration system called Suite. In this paper, we motivate, describe, and illustrate these requirements and our model.