diff --git a/src/parser_data.h b/src/parser_data.h
index d32aaff..c677416 100644
--- a/src/parser_data.h
+++ b/src/parser_data.h
@@ -290,7 +290,7 @@
  *   - @p parent - must be NULL, the whole RPC is expected;
  *   - @p format - must be ::LYD_XML, NETCONF supports only this format;
  *   - @p tree - must be provided, all the NETCONF-specific XML envelopes will be returned here as
- *               a separate opaque data tree;
+ *               a separate opaque data tree, even if the function fails, this may be returned;
  *   - @p op - must be provided, the RPC/action data tree itself will be returned here, pointing to the operation;
  *
  * - ::LYD_TYPE_NETCONF_REPLY_OR_NOTIF:
diff --git a/src/parser_internal.h b/src/parser_internal.h
index be99884..282938e 100644
--- a/src/parser_internal.h
+++ b/src/parser_internal.h
@@ -129,7 +129,8 @@
  * @param[in] parse_opts Options for parser, see @ref dataparseroptions.
  * @param[in] val_opts Options for the validation phase, see @ref datavalidationoptions.
  * @param[in] data_type Expected data type of the data.
- * @param[out] envp Individual parsed envelopes tree, returned only by specific @p data_type.
+ * @param[out] envp Individual parsed envelopes tree, returned only by specific @p data_type and possibly even if
+ * an error occurs later.
  * @param[out] parsed Set to add all the parsed siblings into.
  * @param[out] lydctx_p Data parser context to finish validation.
  * @return LY_ERR value.
diff --git a/src/tree_data.c b/src/tree_data.c
index 7f6ae8f..390b89c 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -474,6 +474,14 @@
     switch (format) {
     case LYD_XML:
         rc = lyd_parse_xml(ctx, parent, &first, in, parse_opts, val_opts, data_type, &envp, &parsed, &lydctx);
+        if (rc && envp) {
+            /* special situation when the envelopes were parsed successfully */
+            if (tree) {
+                *tree = envp;
+            }
+            ly_set_erase(&parsed, NULL);
+            return rc;
+        }
         break;
     case LYD_JSON:
         rc = lyd_parse_json(ctx, parent, &first, in, parse_opts, val_opts, data_type, &parsed, &lydctx);
