diff --git a/src/yang_schema.cpp b/src/yang_schema.cpp
index c9e3d3c..2619943 100644
--- a/src/yang_schema.cpp
+++ b/src/yang_schema.cpp
@@ -188,7 +188,7 @@
     return keys.find(key) != keys.end();
 }
 
-libyang::S_Set YangSchema::getNodeSet(const schemaPath_& location, const ModuleNodePair& node) const
+libyang::S_Schema_Node YangSchema::getSchemaNode(const schemaPath_& location, const ModuleNodePair& node) const
 {
     std::string absPath = location.m_nodes.empty() ? "" : "/";
     absPath += pathToAbsoluteSchemaString(location) + "/" + fullNodeName(location, node);
@@ -205,21 +205,10 @@
             [&oldOptions]() {
                 libyang::set_log_options(oldOptions);
             });
-        return m_context->find_path(absPath.c_str());
+        return m_context->get_node(nullptr, absPath.c_str());
     }
 }
 
-libyang::S_Schema_Node YangSchema::getSchemaNode(const schemaPath_& location, const ModuleNodePair& node) const
-{
-    const auto set = getNodeSet(location, node);
-    if (!set)
-        return nullptr;
-    const auto& schemaSet = set->schema();
-    if (set->number() != 1)
-        return nullptr;
-    return *schemaSet.begin();
-}
-
 const std::set<std::string> YangSchema::listKeys(const schemaPath_& location, const ModuleNodePair& node) const
 {
     std::set<std::string> keys;
diff --git a/src/yang_schema.hpp b/src/yang_schema.hpp
index e4de5de..12a250c 100644
--- a/src/yang_schema.hpp
+++ b/src/yang_schema.hpp
@@ -16,7 +16,6 @@
 
 namespace libyang {
 class Context;
-class Set;
 class Schema_Node;
 class Data_Node;
 class Module;
@@ -68,7 +67,6 @@
     std::set<std::string> modules() const;
 
     /** @short Returns a set of nodes, that match the location and name criteria. */
-    std::shared_ptr<libyang::Set> getNodeSet(const schemaPath_& location, const ModuleNodePair& node) const;
 
     /** @short Returns a single Schema_Node if the criteria matches only one, otherwise nullptr. */
     std::shared_ptr<libyang::Schema_Node> getSchemaNode(const schemaPath_& location, const ModuleNodePair& node) const;
