data tree BUGFIX do not free static data
diff --git a/src/tree_data.c b/src/tree_data.c
index f0b9575..cdb61b3 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -2848,7 +2848,7 @@
     assert(ctx && (parent || attr) && (!parent || !parent->schema));
     assert(name && name_len && format);
 
-    if (!value_len) {
+    if (!value_len && (!dynamic || !*dynamic)) {
         value = "";
     }