diff --git a/NIF_IO.h b/NIF_IO.h
index 234b592387e577e7f1b288beef7316b3bc35400f..30df26dbd7058ebc02135a2e638897f98ec45ad8 100644
--- a/NIF_IO.h
+++ b/NIF_IO.h
@@ -11,6 +11,7 @@ All rights reserved.  Please see niflib.h for licence. */
 #include <sstream>
 #include <vector>
 #include "nif_math.h"
+#include "nif_versions.h"
 namespace Niflib {
 using namespace std;
 
@@ -18,22 +19,6 @@ using namespace std;
 #define NULL 0
 #endif
 
-//--Constants--//
-
-//NIF Versions
-const unsigned int VER_4_0_0_2     = 0x04000002; /*!< Nif Version 4.0.0.2 */ 
-const unsigned int VER_4_1_0_12    = 0x0401000C; /*!< Nif Version 4.1.0.12 */ 
-const unsigned int VER_4_2_0_2     = 0x04020002; /*!< Nif Version 4.2.0.2 */ 
-const unsigned int VER_4_2_1_0     = 0x04020100; /*!< Nif Version 4.2.1.0 */ 
-const unsigned int VER_4_2_2_0     = 0x04020200; /*!< Nif Version 4.2.2.0 */ 
-const unsigned int VER_10_0_1_0    = 0x0A000100; /*!< Nif Version 10.0.1.0 */ 
-const unsigned int VER_10_1_0_0    = 0x0A010000; /*!< Nif Version 10.1.0.0 */ 
-const unsigned int VER_10_2_0_0    = 0x0A020000; /*!< Nif Version 10.2.0.0 */ 
-const unsigned int VER_20_0_0_4    = 0x14000004; /*!< Nif Version 20.0.0.4 */ 
-const unsigned int VER_20_0_0_5    = 0x14000005; /*!< Nif Version 20.0.0.4 */ 
-const unsigned int VER_UNSUPPORTED = 0xFFFFFFFF; /*!< Unsupported Nif Version */
-const unsigned int VER_INVALID     = 0xFFFFFFFE; /*!< Not a Nif file */
-
 //--Non-mathematical Basic Types--//
 
 typedef unsigned char	byte;
diff --git a/nif_versions.h b/nif_versions.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a430afffa4358b9d2ee2b8754d2b931eb092550
--- /dev/null
+++ b/nif_versions.h
@@ -0,0 +1,21 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for licence. */
+
+#ifndef _NIF_VERSIONS_H_
+#define _NIF_VERSIONS_H_
+
+//NIF Version Constants
+const unsigned int VER_4_0_0_2     = 0x04000002; /*!< Nif Version 4.0.0.2 */ 
+const unsigned int VER_4_1_0_12    = 0x0401000C; /*!< Nif Version 4.1.0.12 */ 
+const unsigned int VER_4_2_0_2     = 0x04020002; /*!< Nif Version 4.2.0.2 */ 
+const unsigned int VER_4_2_1_0     = 0x04020100; /*!< Nif Version 4.2.1.0 */ 
+const unsigned int VER_4_2_2_0     = 0x04020200; /*!< Nif Version 4.2.2.0 */ 
+const unsigned int VER_10_0_1_0    = 0x0A000100; /*!< Nif Version 10.0.1.0 */ 
+const unsigned int VER_10_1_0_0    = 0x0A010000; /*!< Nif Version 10.1.0.0 */ 
+const unsigned int VER_10_2_0_0    = 0x0A020000; /*!< Nif Version 10.2.0.0 */ 
+const unsigned int VER_20_0_0_4    = 0x14000004; /*!< Nif Version 20.0.0.4 */ 
+const unsigned int VER_20_0_0_5    = 0x14000005; /*!< Nif Version 20.0.0.4 */ 
+const unsigned int VER_UNSUPPORTED = 0xFFFFFFFF; /*!< Unsupported Nif Version */
+const unsigned int VER_INVALID     = 0xFFFFFFFE; /*!< Not a Nif file */
+
+#endif
\ No newline at end of file
diff --git a/niflib.h b/niflib.h
index 613fb7a468242028a4d67bf151341bc33997bf53..9639e0f357c3492a240616354eb91f63684d5066 100644
--- a/niflib.h
+++ b/niflib.h
@@ -49,6 +49,7 @@ POSSIBILITY OF SUCH DAMAGE. */
 #include <map>
 #include "dll_export.h"
 #include "nif_math.h"
+#include "nif_versions.h"
 #include "Ref.h"
 
 using namespace std;
@@ -63,6 +64,8 @@ class NiAVObject;
 #define NULL 0  /*!< Definition used to detect null pointers. */ 
 #endif
 
+//--Constants--//
+
 /*! Keyframe trees are game dependent, so here we define a few games. */
 enum NifGame {
 	KF_MW = 0, /*!< keyframe files: NiSequenceStreamHelper header, .kf extension */
diff --git a/niflib.vcproj b/niflib.vcproj
index e257e6c64222d06cfe85681fe1efdc6c8afd39f5..85c6e15e5e04573989052c61759ecd4c973b428e 100644
--- a/niflib.vcproj
+++ b/niflib.vcproj
@@ -1414,6 +1414,10 @@
 				RelativePath=".\nif_math.h"
 				>
 			</File>
+			<File
+				RelativePath=".\nif_versions.h"
+				>
+			</File>
 			<File
 				RelativePath=".\niflib.h"
 				>