diff --git a/src/ly_common.c b/src/ly_common.c
index 28d7514..449c862 100644
--- a/src/ly_common.c
+++ b/src/ly_common.c
@@ -40,19 +40,53 @@
 #include "version.h"
 #include "xml.h"
 
-LIBYANG_API_DEF struct ly_version ly_version_so = {
-    .major = LY_VERSION_MAJOR,
-    .minor = LY_VERSION_MINOR,
-    .micro = LY_VERSION_MICRO,
-    .str = LY_VERSION
-};
+LIBYANG_API_DEF uint32_t
+ly_version_so_major(void)
+{
+    return LY_VERSION_MAJOR;
+}
 
-LIBYANG_API_DEF struct ly_version ly_version_proj = {
-    .major = LY_PROJ_VERSION_MAJOR,
-    .minor = LY_PROJ_VERSION_MINOR,
-    .micro = LY_PROJ_VERSION_MICRO,
-    .str = LY_PROJ_VERSION
-};
+LIBYANG_API_DEF uint32_t
+ly_version_so_minor(void)
+{
+    return LY_VERSION_MINOR;
+}
+
+LIBYANG_API_DEF uint32_t
+ly_version_so_micro(void)
+{
+    return LY_VERSION_MICRO;
+}
+
+LIBYANG_API_DEF const char *
+ly_version_so_str(void)
+{
+    return LY_VERSION;
+}
+
+LIBYANG_API_DEF uint32_t
+ly_version_proj_major(void)
+{
+    return LY_PROJ_VERSION_MAJOR;
+}
+
+LIBYANG_API_DEF uint32_t
+ly_version_proj_minor(void)
+{
+    return LY_PROJ_VERSION_MINOR;
+}
+
+LIBYANG_API_DEF uint32_t
+ly_version_proj_micro(void)
+{
+    return LY_PROJ_VERSION_MICRO;
+}
+
+LIBYANG_API_DEF const char *
+ly_version_proj_str(void)
+{
+    return LY_PROJ_VERSION;
+}
 
 void *
 ly_realloc(void *ptr, size_t size)
diff --git a/src/version.h.in b/src/version.h.in
index 2fe6663..021cd05 100644
--- a/src/version.h.in
+++ b/src/version.h.in
@@ -32,22 +32,61 @@
 #define LY_PROJ_VERSION_MICRO @LIBYANG_MICRO_VERSION@ /**< project micro version number */
 #define LY_PROJ_VERSION "@LIBYANG_VERSION@" /**< project version string */
 
-struct ly_version {
-    uint32_t major; /**< Major version number */
-    uint32_t minor; /**< Minor version number */
-    uint32_t micro; /**< Micro version number */
-    const char *str; /**< Version string */
-};
+/**
+ * @brief Get libyang major SO version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL uint32_t ly_version_so_major(void);
 
 /**
- * @brief libyang SO version.
+ * @brief Get libyang minor SO version.
+ *
+ * @return LY version.
  */
-LIBYANG_API_DECL extern struct ly_version ly_version_so;
+LIBYANG_API_DECL uint32_t ly_version_so_minor(void);
 
 /**
- * @brief libyang project version.
+ * @brief Get libyang micro SO version.
+ *
+ * @return LY version.
  */
-LIBYANG_API_DECL extern struct ly_version ly_version_proj;
+LIBYANG_API_DECL uint32_t ly_version_so_micro(void);
+
+/**
+ * @brief Get libyang string SO version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL const char *ly_version_so_str(void);
+
+/**
+ * @brief Get libyang major project version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL uint32_t ly_version_proj_major(void);
+
+/**
+ * @brief Get libyang minor project version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL uint32_t ly_version_proj_minor(void);
+
+/**
+ * @brief Get libyang micro project version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL uint32_t ly_version_proj_micro(void);
+
+/**
+ * @brief Get libyang string project version.
+ *
+ * @return LY version.
+ */
+LIBYANG_API_DECL const char *ly_version_proj_str(void);
 
 #ifdef __cplusplus
 }
