diff --git a/modules/intermediate_format/preprocessing.xqm b/modules/intermediate_format/preprocessing.xqm
index bd27bb7d8e3f81e8a92c7c8b6112b03d026ea7a7..84fa9cadb437366c0a97ba67b754d45ec85c9024 100644
--- a/modules/intermediate_format/preprocessing.xqm
+++ b/modules/intermediate_format/preprocessing.xqm
@@ -112,6 +112,7 @@ declare function pre:default-element
     return
         element{$node/name()}{
             $node/@*,
+            attribute id {generate-id($node)},
             (if($following-node[matches(., "[\s\n\r\t]") and normalize-space(.) = ""]
             and $following-sibling[self::ref or self::app or self::hi or self::bibl
             or self::foreign or self::choice or self::milestone or self::persName