Three-way merging is a technique that may be employed for reintegrating changes to a document in cases where multiple independently modified copies have been made. While tools for three-way merge of ASCII text files exist in the form of the ubiquitous diff and patch tools, these are of limited applicability to XML documents. We present a method for three-way merging of XML which is targeted at merging XML formats that model humanauthored documents as ordered trees (e.g. rich text formats, structured text, drawings, etc.). To this end, we investigate a number of use cases on XML merging (collaborative editing, propagating changes across document variants), from which we derive a set of high-level merge rules. Our merge is based on these rules. We propose that our merge is easy to both understand and implement, yet sufficiently expressive to handle several important cases of merging on document structure that are beyond the capabilities of traditional text-based tools. In order to ju...