diff --git a/nxcomp/CHANGELOG b/nxcomp/CHANGELOG
index b7ef0d9..756c9ba 100644
--- a/nxcomp/CHANGELOG
+++ b/nxcomp/CHANGELOG
@@ -1,5 +1,9 @@
 ChangeLog:
 
+nxcomp-3.5.28
+
+- Add versioning. Update of NX.h and Version.c
+
 nxcomp-3.5.0-2
 
 - Fixed TR11H02398. Solved a race condition when creating channels.
diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp
index ce99567..b7c1219 100644
--- a/nxcomp/Control.cpp
+++ b/nxcomp/Control.cpp
@@ -15,6 +15,7 @@
 /*                                                                        */
 /**************************************************************************/
 
+#include "NX.h"
 #include "NXpack.h"
 
 #include "Control.h"
@@ -599,39 +600,9 @@ Control::Control()
   CompatVersionMinor = -1;
   CompatVersionPatch = -1;
 
-  char version[32];
-
-  strcpy(version, VERSION);
-
-  char *value;
-
-  value = strtok(version, ".");
-
-  for (int i = 0; value != NULL && i < 3; i++)
-  {
-    switch (i)
-    {
-      case 0:
-
-        LocalVersionMajor = atoi(value);
-
-        break;
-
-      case 1:
-
-        LocalVersionMinor = atoi(value);
-
-        break;
-
-      case 2:
-
-        LocalVersionPatch = atoi(value);
-
-        break;
-    }
-
-    value = strtok(NULL, ".");
-  }
+  LocalVersionMajor = NXMajorVersion();
+  LocalVersionMinor = NXMinorVersion();
+  LocalVersionPatch = NXPatchVersion();
 
   #ifdef TEST
   *logofs << "Control: Major version is " << LocalVersionMajor
diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in
index 434118b..6aa18f3 100644
--- a/nxcomp/Makefile.in
+++ b/nxcomp/Makefile.in
@@ -100,7 +100,8 @@ MSRC   =
 
 CSRC   = MD5.c					\
 	 Pack.c					\
-         Vars.c
+	 Vars.c					\
+	 Version.c
 
 CXXSRC = Loop.cpp 				\
 	 Children.cpp				\
diff --git a/nxcomp/NX.h b/nxcomp/NX.h
index d98af79..fba4718 100644
--- a/nxcomp/NX.h
+++ b/nxcomp/NX.h
@@ -442,6 +442,12 @@ extern int NXTransParseEnvironment(const char *env, int force);
 
 extern void NXTransCleanup(void) __attribute__((noreturn));
 
+extern const char* NXVersion();
+extern int NXMajorVersion();
+extern int NXMinorVersion();
+extern int NXPatchVersion();
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/nxcomp/VERSION b/nxcomp/VERSION
index 1545d96..3f3ae45 100644
--- a/nxcomp/VERSION
+++ b/nxcomp/VERSION
@@ -1 +1 @@
-3.5.0
+3.5.28
diff --git a/nxcomp/Version.c b/nxcomp/Version.c
new file mode 100644
index 0000000..9df6cbd
--- /dev/null
+++ b/nxcomp/Version.c
@@ -0,0 +1,98 @@
+/**************************************************************************/
+/*                                                                        */
+/* Copyright (C) 2014 Qindel http://qindel.com - http://theqvd.com        */
+/*                                                                        */
+/* This program is free software; you can redistribute it and/or modify   */
+/* it under the terms of the GNU General Public License as published by   */
+/* the Free Software Foundation; either version 3 of the License, or (at  */
+/* your option) any later version.                                        */
+/*                                                                        */
+/* This program is distributed in the hope that it will be useful, but    */
+/* WITHOUT ANY WARRANTY; without even the implied warranty of             */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                   */
+/* See the GNU General Public License for more details.                   */
+/*                                                                        */
+/* You should have received a copy of the GNU General Public License      */
+/* along with this program; if not, see <http://www.gnu.org/licenses>.    */
+/*                                                                        */
+/* Additional permission under GNU GPL version 3 section 7                */
+/*                                                                        */
+/* If you modify this Program, or any covered work, by linking or         */
+/* combining it with [name of library] (or a modified version of that     */
+/* library), containing parts covered by the terms of [name of library's  */
+/* license], the licensors of this Program grant you additional           */
+/* permission to convey the resulting work. {Corresponding Source for a   */
+/* non-source form of such a combination shall include the source code    */
+/* for the parts of [name of library] used as well as that of the covered */
+/* work.}                                                                 */
+/*                                                                        */
+/*                                                                        */
+/**************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "NX.h"
+
+
+static int _NXVersionMajor = -1;
+static int _NXVersionMinor = -1;
+static int _NXVersionPatch = -1;
+
+
+const char* NXVersion() {
+  const char *version = VERSION;
+  return version;
+}
+
+void _parseNXVersion() {
+  char version[32];
+  int i;
+  strcpy(version, VERSION);
+
+  char *value;
+
+  value = strtok(version, ".");
+
+  for (i = 0; value != NULL && i < 3; i++)
+  {
+    switch (i)
+    {
+      case 0:
+
+        _NXVersionMajor = atoi(value);
+
+        break;
+
+      case 1:
+
+        _NXVersionMinor = atoi(value);
+
+        break;
+
+      case 2:
+
+        _NXVersionPatch = atoi(value);
+
+        break;
+    }
+
+    value = strtok(NULL, ".");
+  }
+}
+
+int NXMajorVersion() {
+  if (_NXVersionMajor == -1)
+    _parseNXVersion();
+  return _NXVersionMajor;
+}
+int NXMinorVersion() {
+  if (_NXVersionMinor == -1)
+    _parseNXVersion();
+  return _NXVersionMinor;
+}
+int NXPatchVersion() {
+  if (_NXVersionPatch == -1)
+    _parseNXVersion();
+  return _NXVersionPatch;
+}
