diff --git a/src/printer_tree.c b/src/printer_tree.c
index e642257..9e997cd 100644
--- a/src/printer_tree.c
+++ b/src/printer_tree.c
@@ -705,6 +705,7 @@
     const struct lysc_node *cn;                     /**< Actual pointer to compiled node. */
     const struct ly_set *parent_refs;               /**< List of schema nodes for top-level nodes found in mount
                                                          point parent references */
+    LY_ERR last_error;                              /**< Error value during printing. */
 };
 
 /**
@@ -3512,7 +3513,7 @@
             wr_mount = trp_wrapper_set_mark_top(wr_mount);
         }
 
-        trb_print_mount_point(node.mount, wr_mount, pc);
+        tc->last_error = trb_print_mount_point(node.mount, wr_mount, pc);
     }
 }
 
@@ -4028,7 +4029,8 @@
         .pn = module->parsed ? module->parsed->data : NULL,
         .tpn = module->parsed ? module->parsed->data : NULL,
         .cn = NULL,
-        .parent_refs = parent_refs
+        .parent_refs = parent_refs,
+        .last_error = 0
     };
 
     pc->out = out;
@@ -4082,7 +4084,8 @@
         .tpn = NULL,
         .pn = NULL,
         .cn = module->compiled->data,
-        .parent_refs = parent_refs
+        .parent_refs = parent_refs,
+        .last_error = 0
     };
 
     pc->out = out;
@@ -4116,7 +4119,11 @@
 static void
 trm_reset_to_lysc_tree_ctx(struct trt_printer_ctx *pc, struct trt_tree_ctx *tc)
 {
+    LY_ERR erc;
+
+    erc = tc->last_error;
     trm_lysc_tree_ctx(tc->pmod->mod, pc->out, pc->max_line_length, tc->mounted, tc->parent_refs, pc, tc);
+    tc->last_error = erc;
 }
 
 /**
@@ -4127,7 +4134,11 @@
 static void
 trm_reset_to_lysp_tree_ctx(struct trt_printer_ctx *pc, struct trt_tree_ctx *tc)
 {
+    LY_ERR erc;
+
+    erc = tc->last_error;
     trm_lysp_tree_ctx(tc->pmod->mod, pc->out, pc->max_line_length, tc->mounted, tc->parent_refs, pc, tc);
+    tc->last_error = erc;
 }
 
 /**
@@ -4411,6 +4422,18 @@
     ly_print_(pc->out, "\n");
 }
 
+static LY_ERR
+tree_print_check_error(struct ly_out_clb_arg *out, struct trt_tree_ctx *tc)
+{
+    if (out->last_error) {
+        return out->last_error;
+    } else if (tc->last_error) {
+        return tc->last_error;
+    } else {
+        return LY_SUCCESS;
+    }
+}
+
 /**********************************************************************
  * Definition of module interface
  *********************************************************************/
@@ -4438,7 +4461,7 @@
     }
 
     trm_print_sections(&pc, &tc);
-    erc = clb_arg.last_error;
+    erc = tree_print_check_error(&clb_arg, &tc);
 
     ly_out_free(new_out, NULL, 1);
 
@@ -4478,7 +4501,7 @@
     }
     ly_print_(out, "\n");
 
-    erc = clb_arg.last_error;
+    erc = tree_print_check_error(&clb_arg, &tc);
     ly_out_free(new_out, NULL, 1);
 
     return erc;
@@ -4508,7 +4531,7 @@
     tc.pn = tc.tpn;
 
     trm_print_sections(&pc, &tc);
-    erc = clb_arg.last_error;
+    erc = tree_print_check_error(&clb_arg, &tc);
 
     ly_out_free(new_out, NULL, 1);
 
@@ -4541,7 +4564,8 @@
         return LY_SUCCESS;
     }
 
-    lyplg_ext_schema_mount_get_parent_ref(ext, &refs);
+    ret = lyplg_ext_schema_mount_get_parent_ref(ext, &refs);
+    LY_CHECK_GOTO(ret, cleanup);
 
     /* Get the last mounted module which will be printed. */
     iter_state = 0;
@@ -4590,6 +4614,7 @@
         trb_print_parents(refs->snodes[i], &tmpwr, pc, &tmptc);
     }
 
+cleanup:
     ly_set_free(refs, NULL);
     ly_ctx_destroy(ext_ctx);
 
