diff --git a/Doxyfile b/Doxyfile
index 6122708e62ad79a0a57c964436823e3a8a6be49d..6b921988a5d05deefb85bc385e15a2747c6e51b4 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -4,7 +4,7 @@
 # Project related configuration options
 #---------------------------------------------------------------------------
 PROJECT_NAME           = Niflib
-PROJECT_NUMBER         = 0.6.0
+PROJECT_NUMBER         = 0.6.2
 OUTPUT_DIRECTORY       = doc
 CREATE_SUBDIRS         = NO
 OUTPUT_LANGUAGE        = English
@@ -247,9 +247,11 @@ PREDEFINED             = NI_OBJECT_PARENT= \
                          A_BONE_L_O_D_CONTROLLER_PARENT=NiTimeController \
                          NI_SINGLE_INTERPOLATOR_CONTROLLER_PARENT=NiTimeController \
                          A_P_SYS_CTLR_PARENT=NiSingleInterpolatorController \
-                         NI_TRI_BASED_GEOM_PARENT=NiAVObject \
-                         NI_TRI_BASED_GEOM_DATA_PARENT=NiObject \
-                         A_P_SYS_DATA_PARENT=NiTriBasedGeomData \
+                         NI_GEOMETRY_PARENT=NiAVObject \
+                         NI_TRI_BASED_GEOM_PARENT=NiGeometry \
+                         NI_GEOMETRY_DATA_PARENT=NiObject \
+                         NI_TRI_BASED_GEOM_DATA_PARENT=NiGeometryData \
+                         A_P_SYS_DATA_PARENT=NiGeometryData \
                          BHK_BLEND_COLLISION_OBJECT_PARENT=NiCollisionObject \
                          BHK_BLEND_CONTROLLER_PARENT=NiTimeController \
                          BHK_BOX_SHAPE_PARENT=bhkConvexShape \
@@ -283,7 +285,7 @@ PREDEFINED             = NI_OBJECT_PARENT= \
                          NI_ALPHA_CONTROLLER_PARENT=NiSingleInterpolatorController \
                          NI_ALPHA_PROPERTY_PARENT=NiProperty \
                          NI_AMBIENT_LIGHT_PARENT=NiLight \
-                         NI_AUTO_NORMAL_PARTICLES_DATA_PARENT=NiTriBasedGeomData \
+                         NI_AUTO_NORMAL_PARTICLES_DATA_PARENT=NiGeometryData \
                          NI_BINARY_EXTRA_DATA_PARENT=NiExtraData \
                          NI_BLEND_BOOL_INTERPOLATOR_PARENT=NiBlendInterpolator \
                          NI_BLEND_FLOAT_INTERPOLATOR_PARENT=NiBlendInterpolator \
@@ -347,7 +349,7 @@ PREDEFINED             = NI_OBJECT_PARENT= \
                          NI_PARTICLE_GROW_FADE_PARENT=AParticleModifier \
                          NI_PARTICLE_MESH_MODIFIER_PARENT=AParticleModifier \
                          NI_PARTICLE_ROTATION_PARENT=AParticleModifier \
-                         NI_PARTICLES_PARENT=NiTriBasedGeom \
+                         NI_PARTICLES_PARENT=NiGeometry \
                          NI_AUTO_NORMAL_PARTICLES_PARENT=NiParticles \
                          NI_PARTICLE_MESHES_PARENT=NiParticles \
                          NI_PARTICLES_DATA_PARENT=NiAutoNormalParticlesData \
@@ -401,6 +403,7 @@ PREDEFINED             = NI_OBJECT_PARENT= \
                          NI_SHADE_PROPERTY_PARENT=NiProperty \
                          NI_SKIN_DATA_PARENT=NiObject \
                          NI_SKIN_INSTANCE_PARENT=NiObject \
+                         NI_CLOD_SKIN_INSTANCE_PARENT=NiSkinInstance \
                          NI_SKIN_PARTITION_PARENT=NiObject \
                          NI_SOURCE_TEXTURE_PARENT=NiObjectNET \
                          NI_SPECULAR_PROPERTY_PARENT=NiProperty \
@@ -413,6 +416,9 @@ PREDEFINED             = NI_OBJECT_PARENT= \
                          NI_TEXT_KEY_EXTRA_DATA_PARENT=NiExtraData \
                          NI_TEXTURE_EFFECT_PARENT=NiDynamicEffect \
                          NI_TEXTURE_TRANSFORM_CONTROLLER_PARENT=NiSingleInterpolatorController \
+                         NI_TEXTURE_MODE_PROPERTY_PARENT=NiProperty \
+                         NI_IMAGE_PARENT=NiObject \
+                         NI_TEXTURE_PROPERTY_PARENT=NiProperty \
                          NI_TEXTURING_PROPERTY_PARENT=NiProperty \
                          NI_TRANSFORM_CONTROLLER_PARENT=NiSingleInterpolatorController \
                          NI_TRANSFORM_DATA_PARENT=NiKeyframeData \
diff --git a/change_log.txt b/change_log.txt
index 04add7b52cc8465064a7b6ef372d026b25f44f6a..78d22478ad47d9a6b5fc3c8982d7633df9bee110 100644
--- a/change_log.txt
+++ b/change_log.txt
@@ -436,4 +436,48 @@
  * Added Merge function to ComplexShape.
  * Added != operator to Matrix44.
  * Added IsSplitMeshProxy function to NiNode.
- * Fixed some include problems.
\ No newline at end of file
+ * Fixed some include problems.
+ 
+ ==Version 0.6.2==
+ 
+ * Improved support for Freedom Force games thanks to Symon.
+ * Change NodeGroup to use pointers instead of Refs.
+ * NiGeometry::BindSkin now throws an exception if one of the passed in bone
+   references is NULL.
+ * NiNode::IsSplitMeshProxy now returns false if it is a skin influence.
+ * NiTriShapeData::GetTriangles now only returns valid triangles.
+ * Fixed a bug in ComplexShape::Merge that occurred when a shape had no UV set,
+   but, for some reason, had a texture referencing UV set zero.
+ * Added NiGeometry::NormalizeSkinWeights function to ensure all skin weights
+   add up to 1.0 on export.
+ * ComplexShape::Split now cuts out weights below 0.1 and normalizes the
+   result.
+ * Fixed a bug which could cause NiSkinInstance to try to call a function on a
+   NiNode that was in the midst of destruction.
+ * Added NiGeometry::ApplySkinOffset function to clear nodes between skins and
+   the skeleton root.
+ * Added some new object types for NIF version 3.1, but most files still can't
+   be opened.
+ * Fixed object auto-destruct.  Niflib is now destroying objects properly and
+   reporting the right number of Objects from NiObject::NumObjectsInMemory.
+ * Generated array code now prints 20 items per 2D array in total when verbose
+   is off.
+ * Fixed duplicated Read call.  All FFvt3R demo files can now be read by
+   Niflib.
+ * Added NiGeometry::ApplyTransforms function to automatically zero out the
+   transforms of a mesh and apply them to its vertices.
+ * Added NiGeometryData::Transform function to apply an arbitrary transform
+   to all vertices and normals of a mesh (used by above).
+ * Added NiNode::PropagateTransform function to apply a NiNode's local
+   transform to its children and then zero it out.
+ * Fixed NiTriShapeData to properly set numTriangles when SetTriangles is
+   called.
+ * Removed "set root to scene root" option from NiGeometry::BindSkin.
+ * Replaced GetSkinInfluencedVertices function with GetSkinDeformation
+   function which takes in references to two vectors and fills them with the
+   skin deformed vertices and normals
+ * Added constructor to Matrix44 to convert from Matrix33.
+ * Change default to little endian instead of big endian.
+ * Added NiClodSkinInstance and fixed NiClodData.  Niflib can now open all
+   Freedom Force demo NIF files.
+ * Corrected Shape/particle hierarchy by adding NiGeometry and NiGeometryData.
\ No newline at end of file
diff --git a/pyniflib.i b/pyniflib.i
index 8128f956d405b8edb52b5730bcd32b9c4c0e5817..1a04f4fbe7bb081fc19b28adc99498762d50cfed 100644
--- a/pyniflib.i
+++ b/pyniflib.i
@@ -34,7 +34,7 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE. */
 
-%module new_niflib
+%module niflib
 %include "stl.i"
 %include "std_map.i"
 %include "exception.i"
@@ -111,7 +111,9 @@ POSSIBILITY OF SUCH DAMAGE. */
 		#include "obj/ABoneLODController.h"
 		#include "obj/NiSingleInterpolatorController.h"
 		#include "obj/APSysCtlr.h"
+		#include "obj/NiGeometry.h"
 		#include "obj/NiTriBasedGeom.h"
+		#include "obj/NiGeometryData.h"
 		#include "obj/NiTriBasedGeomData.h"
 		#include "obj/APSysData.h"
 		#include "obj/bhkBlendCollisionObject.h"
@@ -265,6 +267,7 @@ POSSIBILITY OF SUCH DAMAGE. */
 		#include "obj/NiShadeProperty.h"
 		#include "obj/NiSkinData.h"
 		#include "obj/NiSkinInstance.h"
+		#include "obj/NiClodSkinInstance.h"
 		#include "obj/NiSkinPartition.h"
 		#include "obj/NiSourceTexture.h"
 		#include "obj/NiSpecularProperty.h"
@@ -277,6 +280,9 @@ POSSIBILITY OF SUCH DAMAGE. */
 		#include "obj/NiTextKeyExtraData.h"
 		#include "obj/NiTextureEffect.h"
 		#include "obj/NiTextureTransformController.h"
+		#include "obj/NiTextureModeProperty.h"
+		#include "obj/NiImage.h"
+		#include "obj/NiTextureProperty.h"
 		#include "obj/NiTexturingProperty.h"
 		#include "obj/NiTransformController.h"
 		#include "obj/NiTransformData.h"
@@ -333,6 +339,7 @@ POSSIBILITY OF SUCH DAMAGE. */
 %template(vector_byte) std::vector<Niflib::byte>;
 %template(vector_ushort) std::vector<Niflib::ushort>;
 %template(vector_SkinShape) std::vector<Niflib::SkinShape>;
+%template(vector_LineString) std::vector<Niflib::LineString>;
 %template(vector_string) std::vector<std::string>;
 %template(vector_Triangle) std::vector<Niflib::Triangle>;
 %template(vector_Vector3) std::vector<Niflib::Vector3>;
@@ -485,10 +492,18 @@ POSSIBILITY OF SUCH DAMAGE. */
 %template(APSysCtlrRef) Niflib::Ref<Niflib::APSysCtlr>;
 %template(DynamicCastToAPSysCtlr) Niflib::DynamicCast<Niflib::APSysCtlr>;
 %template(StaticCastToAPSysCtlr) Niflib::StaticCast<Niflib::APSysCtlr>;
+%include "obj/NiGeometry.h"
+%template(NiGeometryRef) Niflib::Ref<Niflib::NiGeometry>;
+%template(DynamicCastToNiGeometry) Niflib::DynamicCast<Niflib::NiGeometry>;
+%template(StaticCastToNiGeometry) Niflib::StaticCast<Niflib::NiGeometry>;
 %include "obj/NiTriBasedGeom.h"
 %template(NiTriBasedGeomRef) Niflib::Ref<Niflib::NiTriBasedGeom>;
 %template(DynamicCastToNiTriBasedGeom) Niflib::DynamicCast<Niflib::NiTriBasedGeom>;
 %template(StaticCastToNiTriBasedGeom) Niflib::StaticCast<Niflib::NiTriBasedGeom>;
+%include "obj/NiGeometryData.h"
+%template(NiGeometryDataRef) Niflib::Ref<Niflib::NiGeometryData>;
+%template(DynamicCastToNiGeometryData) Niflib::DynamicCast<Niflib::NiGeometryData>;
+%template(StaticCastToNiGeometryData) Niflib::StaticCast<Niflib::NiGeometryData>;
 %include "obj/NiTriBasedGeomData.h"
 %template(NiTriBasedGeomDataRef) Niflib::Ref<Niflib::NiTriBasedGeomData>;
 %template(DynamicCastToNiTriBasedGeomData) Niflib::DynamicCast<Niflib::NiTriBasedGeomData>;
@@ -1101,6 +1116,10 @@ POSSIBILITY OF SUCH DAMAGE. */
 %template(NiSkinInstanceRef) Niflib::Ref<Niflib::NiSkinInstance>;
 %template(DynamicCastToNiSkinInstance) Niflib::DynamicCast<Niflib::NiSkinInstance>;
 %template(StaticCastToNiSkinInstance) Niflib::StaticCast<Niflib::NiSkinInstance>;
+%include "obj/NiClodSkinInstance.h"
+%template(NiClodSkinInstanceRef) Niflib::Ref<Niflib::NiClodSkinInstance>;
+%template(DynamicCastToNiClodSkinInstance) Niflib::DynamicCast<Niflib::NiClodSkinInstance>;
+%template(StaticCastToNiClodSkinInstance) Niflib::StaticCast<Niflib::NiClodSkinInstance>;
 %include "obj/NiSkinPartition.h"
 %template(NiSkinPartitionRef) Niflib::Ref<Niflib::NiSkinPartition>;
 %template(DynamicCastToNiSkinPartition) Niflib::DynamicCast<Niflib::NiSkinPartition>;
@@ -1149,6 +1168,18 @@ POSSIBILITY OF SUCH DAMAGE. */
 %template(NiTextureTransformControllerRef) Niflib::Ref<Niflib::NiTextureTransformController>;
 %template(DynamicCastToNiTextureTransformController) Niflib::DynamicCast<Niflib::NiTextureTransformController>;
 %template(StaticCastToNiTextureTransformController) Niflib::StaticCast<Niflib::NiTextureTransformController>;
+%include "obj/NiTextureModeProperty.h"
+%template(NiTextureModePropertyRef) Niflib::Ref<Niflib::NiTextureModeProperty>;
+%template(DynamicCastToNiTextureModeProperty) Niflib::DynamicCast<Niflib::NiTextureModeProperty>;
+%template(StaticCastToNiTextureModeProperty) Niflib::StaticCast<Niflib::NiTextureModeProperty>;
+%include "obj/NiImage.h"
+%template(NiImageRef) Niflib::Ref<Niflib::NiImage>;
+%template(DynamicCastToNiImage) Niflib::DynamicCast<Niflib::NiImage>;
+%template(StaticCastToNiImage) Niflib::StaticCast<Niflib::NiImage>;
+%include "obj/NiTextureProperty.h"
+%template(NiTexturePropertyRef) Niflib::Ref<Niflib::NiTextureProperty>;
+%template(DynamicCastToNiTextureProperty) Niflib::DynamicCast<Niflib::NiTextureProperty>;
+%template(StaticCastToNiTextureProperty) Niflib::StaticCast<Niflib::NiTextureProperty>;
 %include "obj/NiTexturingProperty.h"
 %template(NiTexturingPropertyRef) Niflib::Ref<Niflib::NiTexturingProperty>;
 %template(DynamicCastToNiTexturingProperty) Niflib::DynamicCast<Niflib::NiTexturingProperty>;