\defineXMLpush actually makes its definition when the pushed element occurs. When a parent element defines a group, then the pushed element is not visible outside that group. In \TeX\ this problem is usually solved by doing a \gdef. Perhaps this problem can be solved in the same manner, by providing a \gdefineXMLpush. See attached example. -- Simon Pepping email: spepping@scaprea.hobby.nl