schema tree helpers MAINTENANCE check return value
diff --git a/src/tree_schema_helpers.c b/src/tree_schema_helpers.c
index 82a5610..8821531 100644
--- a/src/tree_schema_helpers.c
+++ b/src/tree_schema_helpers.c
@@ -327,6 +327,7 @@
 lysp_check_dup_typedef(struct lys_parser_ctx *ctx, struct lysp_node *node, const struct lysp_tpdf *tpdf,
         struct hash_table *tpdfs_global, struct hash_table *tpdfs_scoped)
 {
+    LY_ERR ret;
     struct lysp_node *parent;
     uint32_t hash;
     size_t name_len;
@@ -369,7 +370,8 @@
     /* check collision with the top-level typedefs */
     hash = dict_hash(name, name_len);
     if (node) {
-        lyht_insert(tpdfs_scoped, &name, hash, NULL);
+        ret = lyht_insert(tpdfs_scoped, &name, hash, NULL);
+        LY_CHECK_ERR_RET(ret && (ret != LY_EEXIST), LOGINT(PARSER_CTX(ctx)), LY_EINT);
         if (!lyht_find(tpdfs_global, &name, hash, NULL)) {
             LOGVAL_PARSER(ctx, LYVE_SYNTAX_YANG, "Invalid name \"%s\" of typedef - scoped type collide with a top-level type.", name);
             return LY_EEXIST;