- // merge original attributes with replacement template
- e = new JSElement.Merge(t, e);
+ XML.Element merged = new JSElement.Merge(t, e);
+
+ // remap the parent of the original element
+ if (e.getParent() != null) {
+ List ch = e.getParent().getChildren();
+ ch.set(ch.indexOf(e), merged);
+ }
+
+ return wrap(merged, s);