A layout merger is used to merge a current version layout with an override that is an older version. Merging takes place broadly by copying the current version into a new XmlNode in a specified document. Currently most elements are copied unmodified. However, part refs are treated specially: Each consecutive sequence of part nodes is adjusted in the following ways: - order is made to conform to the order in the override, for any elements found in the override. - any elements not found in the override are copied, in the current sequence starting from the previous element that IS matched, and visibility set to "never". - (elements not matched in the override are discarded, except that) - "$child" elements in the override are copied to the output - a specified set of attributes may also be overridden.