diff --git a/src/plugins_types/union.c b/src/plugins_types/union.c
index d313383..4223eb6 100644
--- a/src/plugins_types/union.c
+++ b/src/plugins_types/union.c
@@ -209,7 +209,7 @@
 API const void *
 lyplg_type_hash_union(const struct lyd_value *value, ly_bool *dynamic, size_t *key_len)
 {
-    return value->subvalue->value.realtype->plugin->hash(value, dynamic, key_len);
+    return value->subvalue->value.realtype->plugin->hash(&value->subvalue->value, dynamic, key_len);
 }
 
 API LY_ERR
diff --git a/tests/utests/data/test_tree_data.c b/tests/utests/data/test_tree_data.c
index b9419ae..f0ba388 100644
--- a/tests/utests/data/test_tree_data.c
+++ b/tests/utests/data/test_tree_data.c
@@ -41,10 +41,23 @@
             "anydata any {config false;}"
             "}";
 
+    const char *schema3 = "module c {yang-version 1.1; namespace \"http://example.com/main\";prefix m;"
+            "import \"ietf-inet-types\" {prefix inet;}"
+            "typedef optional-ip-address {type union {"
+            "   type inet:ip-address;"
+            "   type string {pattern \"\";}"
+            "}}"
+            "container cont {"
+            "   list nexthop {min-elements 1; key \"gateway\";"
+            "       leaf gateway {type optional-ip-address;}"
+            "   }"
+            "}}";
+
     UTEST_SETUP;
 
     UTEST_ADD_MODULE(schema1, LYS_IN_YANG, NULL, NULL);
     UTEST_ADD_MODULE(schema2, LYS_IN_YANG, NULL, NULL);
+    UTEST_ADD_MODULE(schema3, LYS_IN_YANG, NULL, NULL);
 
     return 0;
 }
@@ -457,6 +470,24 @@
     lyd_free_all(tree);
 }
 
+static void
+test_find_path(void **state)
+{
+    struct lyd_node *root;
+    const struct lys_module *mod;
+
+    mod = ly_ctx_get_module_implemented(UTEST_LYCTX, "c");
+    assert_non_null(mod);
+
+    assert_int_equal(LY_SUCCESS, lyd_new_inner(NULL, mod, "cont", 0, &root));
+    assert_int_equal(LY_SUCCESS, lyd_new_path(root, NULL, "/c:cont/nexthop[gateway='10.0.0.1']", NULL, LYD_NEW_PATH_UPDATE, NULL));
+    assert_int_equal(LY_SUCCESS, lyd_new_path(root, NULL, "/c:cont/nexthop[gateway='2100::1']", NULL, LYD_NEW_PATH_UPDATE, NULL));
+
+    assert_int_equal(LY_SUCCESS, lyd_find_path(root, "/c:cont/nexthop[gateway='10.0.0.1']", 0, NULL));
+    assert_int_equal(LY_SUCCESS, lyd_find_path(root, "/c:cont/nexthop[gateway='2100::1']", 0, NULL));
+    lyd_free_all(root);
+}
+
 int
 main(void)
 {
@@ -467,6 +498,7 @@
         UTEST(test_target, setup),
         UTEST(test_list_pos, setup),
         UTEST(test_first_sibling, setup),
+        UTEST(test_find_path, setup),
     };
 
     return cmocka_run_group_tests(tests, NULL, NULL);
