diff --git a/src/netopeerguid.c b/src/netopeerguid.c
index a5197dd..54c2d1c 100644
--- a/src/netopeerguid.c
+++ b/src/netopeerguid.c
@@ -1544,7 +1544,7 @@
     struct nc_rpc *rpc;
     struct lyd_node *data = NULL;
     json_object *res = NULL;
-    char *model_data = NULL, *anyxml, *ptr, *ptr2;
+    char *model_data = NULL;
 
     /* create requests */
     rpc = nc_rpc_getschema(identifier, version, format, NC_PARAMTYPE_CONST);
@@ -1561,17 +1561,13 @@
         (*err) = NULL;
 
         if (data) {
-            lyxml_print_mem(&anyxml, ((struct lyd_node_anyxml *)data)->value, 0);
-
-            /* it's with the data root node, remove it */
-            if (anyxml) {
-                ptr = strchr(anyxml, '>');
-                ++ptr;
-
-                ptr2 = strrchr(anyxml, '<');
-
-                model_data = strndup(ptr, strlen(ptr) - strlen(ptr2));
-                free(anyxml);
+            if (((struct lyd_node_anyxml *)data)->xml_struct) {
+                lyxml_print_mem(&model_data, ((struct lyd_node_anyxml *)data)->value.xml, 0);
+            } else {
+                model_data = strdup(((struct lyd_node_anyxml *)data)->value.str);
+            }
+            if (!model_data) {
+                ERROR("memory allocation fail (%s:%d)", __FILE__, __LINE__);
             }
         }
     }
@@ -2000,7 +1996,7 @@
     session_user_activity(nc_session_get_username(locked_session->session));
 
     if (filter[0] == '/') {
-        node = ly_ctx_get_node(nc_session_get_ctx(locked_session->session), filter);
+        node = ly_ctx_get_node(nc_session_get_ctx(locked_session->session), NULL, filter);
         if (!node) {
             ret = create_error_reply("Failed to resolve XPath filter node.");
             goto finish;
