diff --git a/include/obj/NiSortAdjustNode.h b/include/obj/NiSortAdjustNode.h
new file mode 100644
index 0000000000000000000000000000000000000000..7ee8882bd776d7705d3becfc6875cf673c5d9159
--- /dev/null
+++ b/include/obj/NiSortAdjustNode.h
@@ -0,0 +1,80 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for license. */
+
+//-----------------------------------NOTICE----------------------------------//
+// Some of this file is automatically filled in by a Python script.  Only    //
+// add custom code in the designated areas or it will be overwritten during  //
+// the next update.                                                          //
+//-----------------------------------NOTICE----------------------------------//
+
+#ifndef _NISORTADJUSTNODE_H_
+#define _NISORTADJUSTNODE_H_
+
+//--BEGIN FILE HEAD CUSTOM CODE--//
+
+//--END CUSTOM CODE--//
+
+#include "NiNode.h"
+namespace Niflib {
+
+class NiSortAdjustNode;
+typedef Ref<NiSortAdjustNode> NiSortAdjustNodeRef;
+
+/*! Unknown node.  Found in Loki. */
+class NiSortAdjustNode : public NiNode {
+public:
+	/*! Constructor */
+	NIFLIB_API NiSortAdjustNode();
+
+	/*! Destructor */
+	NIFLIB_API virtual ~NiSortAdjustNode();
+
+	/*!
+	 * A constant value which uniquly identifies objects of this type.
+	 */
+	NIFLIB_API static const Type TYPE;
+
+	/*!
+	 * A factory function used during file reading to create an instance of this type of object.
+	 * \return A pointer to a newly allocated instance of this type of object.
+	 */
+	NIFLIB_API static NiObject * Create();
+
+	/*!
+	 * Summarizes the information contained in this object in English.
+	 * \param[in] verbose Determines whether or not detailed information about large areas of data will be printed out.
+	 * \return A string containing a summary of the information within the object in English.  This is the function that Niflyze calls to generate its analysis, so the output is the same.
+	 */
+	NIFLIB_API virtual string asString( bool verbose = false ) const;
+
+	/*!
+	 * Used to determine the type of a particular instance of this object.
+	 * \return The type constant for the actual type of the object.
+	 */
+	NIFLIB_API virtual const Type & GetType() const;
+
+	//--BEGIN MISC CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+protected:
+	/*! Unknown. */
+	int unknownInt1;
+	/*! Unknown. */
+	int unknownInt2;
+public:
+	/*! NIFLIB_HIDDEN function.  For internal use only. */
+	NIFLIB_HIDDEN virtual void Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info );
+	/*! NIFLIB_HIDDEN function.  For internal use only. */
+	NIFLIB_HIDDEN virtual void Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, const NifInfo & info ) const;
+	/*! NIFLIB_HIDDEN function.  For internal use only. */
+	NIFLIB_HIDDEN virtual void FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, const NifInfo & info );
+	/*! NIFLIB_HIDDEN function.  For internal use only. */
+	NIFLIB_HIDDEN virtual list<NiObjectRef> GetRefs() const;
+};
+
+//--BEGIN FILE FOOT CUSTOM CODE--//
+
+//--END CUSTOM CODE--//
+
+} //End Niflib namespace
+#endif
diff --git a/niflib.vcproj b/niflib.vcproj
index e48ea2ad2dac3e84ad19b1bd11c16d7a732ac320..995f65d5628f59cd8372f3c14156aec259b29d98 100644
--- a/niflib.vcproj
+++ b/niflib.vcproj
@@ -1511,6 +1511,10 @@
 					RelativePath=".\src\obj\NiSkinPartition.cpp"
 					>
 				</File>
+				<File
+					RelativePath=".\src\obj\NiSortAdjustNode.cpp"
+					>
+				</File>
 				<File
 					RelativePath=".\src\obj\NiSourceTexture.cpp"
 					>
@@ -2753,6 +2757,10 @@
 					RelativePath=".\include\obj\NiSkinPartition.h"
 					>
 				</File>
+				<File
+					RelativePath=".\include\obj\NiSortAdjustNode.h"
+					>
+				</File>
 				<File
 					RelativePath=".\include\obj\NiSourceTexture.h"
 					>
diff --git a/src/gen/register.cpp b/src/gen/register.cpp
index f08a84434b999ee914a9d8e5e9535f2725177189..8ee0910b7836a9cb51cc3d4b497a27bcba6592cb 100644
--- a/src/gen/register.cpp
+++ b/src/gen/register.cpp
@@ -254,6 +254,7 @@ All rights reserved.  Please see niflib.h for license. */
 #include "../../include/obj/NiZBufferProperty.h"
 #include "../../include/obj/RootCollisionNode.h"
 #include "../../include/obj/NiRawImageData.h"
+#include "../../include/obj/NiSortAdjustNode.h"
 
 namespace Niflib {
 	void RegisterObjects() {
@@ -506,6 +507,7 @@ namespace Niflib {
 		ObjectRegistry::RegisterObject( "NiZBufferProperty", NiZBufferProperty::Create );
 		ObjectRegistry::RegisterObject( "RootCollisionNode", RootCollisionNode::Create );
 		ObjectRegistry::RegisterObject( "NiRawImageData", NiRawImageData::Create );
+		ObjectRegistry::RegisterObject( "NiSortAdjustNode", NiSortAdjustNode::Create );
 
 	}
 }
diff --git a/src/obj/NiSortAdjustNode.cpp b/src/obj/NiSortAdjustNode.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c10c810cd04b73f782d30f2e088d96fb9f964469
--- /dev/null
+++ b/src/obj/NiSortAdjustNode.cpp
@@ -0,0 +1,108 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for license. */
+
+//-----------------------------------NOTICE----------------------------------//
+// Some of this file is automatically filled in by a Python script.  Only    //
+// add custom code in the designated areas or it will be overwritten during  //
+// the next update.                                                          //
+//-----------------------------------NOTICE----------------------------------//
+
+//--BEGIN FILE HEAD CUSTOM CODE--//
+
+//--END CUSTOM CODE--//
+
+#include "../../include/FixLink.h"
+#include "../../include/ObjectRegistry.h"
+#include "../../include/NIF_IO.h"
+#include "../../include/obj/NiSortAdjustNode.h"
+using namespace Niflib;
+
+//Definition of TYPE constant
+const Type NiSortAdjustNode::TYPE("NiSortAdjustNode", &NiNode::TYPE );
+
+NiSortAdjustNode::NiSortAdjustNode() : unknownInt1((int)1), unknownInt2((int)-1) {
+	//--BEGIN CONSTRUCTOR CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+NiSortAdjustNode::~NiSortAdjustNode() {
+	//--BEGIN DESTRUCTOR CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+const Type & NiSortAdjustNode::GetType() const {
+	return TYPE;
+}
+
+NiObject * NiSortAdjustNode::Create() {
+	return new NiSortAdjustNode;
+}
+
+void NiSortAdjustNode::Read( istream& in, list<unsigned int> & link_stack, const NifInfo & info ) {
+	//--BEGIN PRE-READ CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+
+	NiNode::Read( in, link_stack, info );
+	NifStream( unknownInt1, in, info );
+	NifStream( unknownInt2, in, info );
+
+	//--BEGIN POST-READ CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+void NiSortAdjustNode::Write( ostream& out, const map<NiObjectRef,unsigned int> & link_map, const NifInfo & info ) const {
+	//--BEGIN PRE-WRITE CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+
+	NiNode::Write( out, link_map, info );
+	NifStream( unknownInt1, out, info );
+	NifStream( unknownInt2, out, info );
+
+	//--BEGIN POST-WRITE CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+std::string NiSortAdjustNode::asString( bool verbose ) const {
+	//--BEGIN PRE-STRING CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+
+	stringstream out;
+	unsigned int array_output_count = 0;
+	out << NiNode::asString();
+	out << "  Unknown Int 1:  " << unknownInt1 << endl;
+	out << "  Unknown Int 2:  " << unknownInt2 << endl;
+	return out.str();
+
+	//--BEGIN POST-STRING CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+void NiSortAdjustNode::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<unsigned int> & link_stack, const NifInfo & info ) {
+	//--BEGIN PRE-FIXLINKS CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+
+	NiNode::FixLinks( objects, link_stack, info );
+
+	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
+
+	//--END CUSTOM CODE--//
+}
+
+std::list<NiObjectRef> NiSortAdjustNode::GetRefs() const {
+	list<Ref<NiObject> > refs;
+	refs = NiNode::GetRefs();
+	return refs;
+}
+
+//--BEGIN MISC CUSTOM CODE--//
+
+//--END CUSTOM CODE--//