diff --git a/src/obj/NiGeometryData.cpp b/src/obj/NiGeometryData.cpp
index 695773c8363bebfc99911fb8de242087d4ed5400..f9cddd326778c1390462b98ad311644c48161463 100644
--- a/src/obj/NiGeometryData.cpp
+++ b/src/obj/NiGeometryData.cpp
@@ -443,6 +443,9 @@ vector<int> NiGeometryData::GetVertexIndices() const {
 void NiGeometryData::SetUVSetCount(int n) {
 	uvSets.resize(n);
 	hasUv = ( uvSets.size() != 0 );
+   for (unsigned int i = 0; i < uvSets.size(); ++i ) {
+      uvSets[i].resize( vertices.size() );
+   }
 }
 
 //--Setters--//
diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp
index 11926e0de46a7976c14fc8f51a645b0a3c408a41..a103e5458cc5b2c0c2372ea95530fb47f2217dfa 100644
--- a/src/obj/NiSkinPartition.cpp
+++ b/src/obj/NiSkinPartition.cpp
@@ -900,7 +900,6 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti
       for ( vector< BoneWeightList >::iterator it = weights.begin(); it != weights.end(); ++it )
       {
          BoneWeightList & lst = *it;
-         sort(lst.begin(), lst.end(), std::less<BoneWeight>());
          int n = int(lst.size());
          if ( n > maxBonesPerVertex )
          {