diff --git a/include/obj/NiPhysXProp.h b/include/obj/NiPhysXProp.h
index 78da455e684685a2afa20f48667ed61db06d4367..67b909d43678e11e765699b0e9af15f5f6490c7e 100644
--- a/include/obj/NiPhysXProp.h
+++ b/include/obj/NiPhysXProp.h
@@ -67,7 +67,7 @@ protected:
 	/*! Unknown */
 	float unknownFloat1;
 	/*! Unknown */
-	unsigned int unknownInt1;
+	mutable unsigned int unknownInt1;
 	/*! Unknown */
 	vector<Ref<NiObject > > unknownRefs1;
 	/*! Number of NiPhysXTransformDest references */
diff --git a/src/obj/NiPhysXProp.cpp b/src/obj/NiPhysXProp.cpp
index 615faab6c5aae25d267a1b69648fd05afab9bd94..838b4095488c3a88197b6c0f09cfe0c40faefa1b 100644
--- a/src/obj/NiPhysXProp.cpp
+++ b/src/obj/NiPhysXProp.cpp
@@ -52,7 +52,7 @@ void NiPhysXProp::Read( istream& in, list<unsigned int> & link_stack, const NifI
 	NiObjectNET::Read( in, link_stack, info );
 	NifStream( unknownFloat1, in, info );
 	NifStream( unknownInt1, in, info );
-	unknownRefs1.resize(unknownRef1);
+	unknownRefs1.resize(unknownInt1);
 	for (unsigned int i1 = 0; i1 < unknownRefs1.size(); i1++) {
 		NifStream( block_num, in, info );
 		link_stack.push_back( block_num );
@@ -79,6 +79,7 @@ void NiPhysXProp::Write( ostream& out, const map<NiObjectRef,unsigned int> & lin
 
 	NiObjectNET::Write( out, link_map, info );
 	numDests = (int)(transformDests.size());
+	unknownInt1 = (unsigned int)(unknownRefs1.size());
 	NifStream( unknownFloat1, out, info );
 	NifStream( unknownInt1, out, info );
 	for (unsigned int i1 = 0; i1 < unknownRefs1.size(); i1++) {
@@ -129,6 +130,7 @@ std::string NiPhysXProp::asString( bool verbose ) const {
 	unsigned int array_output_count = 0;
 	out << NiObjectNET::asString();
 	numDests = (int)(transformDests.size());
+	unknownInt1 = (unsigned int)(unknownRefs1.size());
 	out << "  Unknown Float 1:  " << unknownFloat1 << endl;
 	out << "  Unknown Int 1:  " << unknownInt1 << endl;
 	array_output_count = 0;