diff --git a/src/io.c b/src/io.c
index 6e853ab..7d6cc22 100644
--- a/src/io.c
+++ b/src/io.c
@@ -976,7 +976,8 @@
             nc_write_clb((void *)&arg, "<ok/>", 5, 0);
             break;
         case NC_RPL_DATA:
-            lyd_print_clb(nc_write_xmlclb, (void *)&arg, ((struct nc_reply_data *)reply)->data, LYD_XML, LYP_WITHSIBLINGS);
+            assert(((struct nc_reply_data *)reply)->data->schema->nodetype == LYS_RPC);
+            lyd_print_clb(nc_write_xmlclb, (void *)&arg, ((struct nc_reply_data *)reply)->data->child, LYD_XML, LYP_WITHSIBLINGS);
             break;
         case NC_RPL_ERROR:
             error_rpl = (struct nc_server_reply_error *)reply;
diff --git a/src/session_client.c b/src/session_client.c
index 68c8196..f3cb53e 100644
--- a/src/session_client.c
+++ b/src/session_client.c
@@ -198,6 +198,7 @@
     struct nc_rpc *rpc;
     struct nc_reply *reply;
     struct nc_reply_data *data_rpl;
+    struct lyd_node_anyxml *get_schema_data;
     NC_MSG_TYPE msg;
     char *model_data = NULL;
     uint64_t msgid;
@@ -233,10 +234,17 @@
     }
 
     data_rpl = (struct nc_reply_data *)reply;
-    if (((struct lyd_node_anyxml *)data_rpl->data)->xml_struct) {
-        lyxml_print_mem(&model_data, ((struct lyd_node_anyxml *)data_rpl->data)->value.xml, LYXML_PRINT_SIBLINGS);
+    if ((data_rpl->data->schema->nodetype != LYS_RPC) || strcmp(data_rpl->data->schema->name, "get-schema")
+            || !data_rpl->data->child || (data_rpl->data->child->schema->nodetype != LYS_ANYXML)) {
+        ERR("Session %u: unexpected data in reply to a <get-schema> RPC.", session->id);
+        nc_reply_free(reply);
+        return NULL;
+    }
+    get_schema_data = (struct lyd_node_anyxml *)data_rpl->data->child;
+    if (get_schema_data->xml_struct) {
+        lyxml_print_mem(&model_data, get_schema_data->value.xml, LYXML_PRINT_SIBLINGS);
     } else {
-        model_data = strdup(((struct lyd_node_anyxml *)data_rpl->data)->value.str);
+        model_data = strdup(get_schema_data->value.str);
     }
     nc_reply_free(reply);
     *free_model_data = free;
diff --git a/src/session_server.c b/src/session_server.c
index 8205332..90e076e 100644
--- a/src/session_server.c
+++ b/src/session_server.c
@@ -334,12 +334,13 @@
         return NULL;
     }
 
-    data = lyd_output_new_anyxml_str(sdata, model_data);
+    data = lyd_new_path(NULL, server_opts.ctx, "/ietf-netconf-monitoring:get-schema/data", model_data, LYD_PATH_OPT_OUTPUT);
     if (!data) {
         ERRINT;
         free(model_data);
         return NULL;
     }
+    free(model_data);
 
     return nc_server_reply_data(data, NC_PARAMTYPE_FREE);
 }
diff --git a/tests/test_fd_comm.c b/tests/test_fd_comm.c
index 493971c..67602b7 100644
--- a/tests/test_fd_comm.c
+++ b/tests/test_fd_comm.c
@@ -52,15 +52,11 @@
 my_getconfig_rpc_clb(struct lyd_node *rpc, struct nc_session *session)
 {
     struct lyd_node *data;
-    const struct lys_module *module;
 
     assert_string_equal(rpc->schema->name, "get-config");
     assert_ptr_equal(session, server_session);
 
-    module = ly_ctx_get_module(session->ctx, "ietf-netconf-acm", NULL);
-    assert_non_null(module);
-
-    data = lyd_new(NULL, module, "nacm");
+    data = lyd_new_path(NULL, session->ctx, "/ietf-netconf:get-config/data", NULL, LYD_PATH_OPT_OUTPUT);
     assert_non_null(data);
 
     return nc_server_reply_data(data, NC_PARAMTYPE_FREE);
