tree data BUGFIX proper context of dup parents
diff --git a/src/tree_data.c b/src/tree_data.c
index 1c7bfa6..f729d19 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -1702,12 +1702,19 @@
         uint32_t options, struct lyd_node **dup_parent, struct lyd_node_inner **local_parent)
 {
     const struct lyd_node_inner *orig_parent, *iter;
-    ly_bool repeat = 1;
+    ly_bool repeat = 1, ext_parent = 0;
 
     *dup_parent = NULL;
     *local_parent = NULL;
 
+    if (node->flags & LYD_EXT) {
+        ext_parent = 1;
+    }
     for (orig_parent = node->parent; repeat && orig_parent; orig_parent = orig_parent->parent) {
+        if (ext_parent) {
+            /* use the standard context */
+            trg_ctx = LYD_CTX(orig_parent);
+        }
         if (parent && (parent->schema == orig_parent->schema)) {
             /* stop creating parents, connect what we have into the provided parent */
             iter = parent;
@@ -1735,6 +1742,9 @@
             (*dup_parent)->parent = (struct lyd_node_inner *)iter;
         }
         *dup_parent = (struct lyd_node *)iter;
+        if (orig_parent->flags & LYD_EXT) {
+            ext_parent = 1;
+        }
     }
 
     if (repeat && parent) {