diff --git a/src/netconf_access.cpp b/src/netconf_access.cpp
index 2b76e50..0c25cc8 100644
--- a/src/netconf_access.cpp
+++ b/src/netconf_access.cpp
@@ -59,15 +59,17 @@
 }
 
 NetconfAccess::NetconfAccess(const std::string& hostname, uint16_t port, const std::string& user, const std::string& pubKey, const std::string& privKey)
-    : m_session(libnetconf::client::Session::connectPubkey(hostname, port, user, pubKey, privKey))
-    , m_schema(std::make_shared<YangSchema>(m_session->libyangContext()))
+    : m_context(nullptr, libyang::ContextOptions::SetPrivParsed)
+    , m_session(libnetconf::client::Session::connectPubkey(hostname, port, user, pubKey, privKey, m_context))
+    , m_schema(std::make_shared<YangSchema>(m_context))
 {
     checkNMDA();
 }
 
 NetconfAccess::NetconfAccess(const int source, const int sink)
-    : m_session(libnetconf::client::Session::connectFd(source, sink))
-    , m_schema(std::make_shared<YangSchema>(m_session->libyangContext()))
+    : m_context(nullptr, libyang::ContextOptions::SetPrivParsed)
+    , m_session(libnetconf::client::Session::connectFd(source, sink, m_context))
+    , m_schema(std::make_shared<YangSchema>(m_context))
 {
     checkNMDA();
 }
@@ -80,8 +82,9 @@
 }
 
 NetconfAccess::NetconfAccess(const std::string& socketPath)
-    : m_session(libnetconf::client::Session::connectSocket(socketPath))
-    , m_schema(std::make_shared<YangSchema>(m_session->libyangContext()))
+    : m_context(nullptr, libyang::ContextOptions::SetPrivParsed)
+    , m_session(libnetconf::client::Session::connectSocket(socketPath, m_context))
+    , m_schema(std::make_shared<YangSchema>(m_context))
 {
     checkNMDA();
 }
