diff --git a/include/gen/SkinShape.h b/include/gen/SkinShape.h
index 022b5f4da2a949f5300fae6689fe0cc2a9b3dfb4..436e154428a20468fbc168bfe2de596f20e68c97 100644
--- a/include/gen/SkinShape.h
+++ b/include/gen/SkinShape.h
@@ -10,8 +10,6 @@ All rights reserved.  Please see niflib.h for license. */
 
 #include "../NIF_IO.h"
 
-// Include structures
-#include "../Ref.h"
 namespace Niflib {
 
 // Forward define of referenced NIF objects
@@ -29,9 +27,9 @@ struct SkinShape {
 	/*! Copy Operator */
 	NIFLIB_API SkinShape & operator=( const SkinShape & src );
 	/*! The shape. */
-	Ref<NiTriBasedGeom > shape;
+	NiTriBasedGeom * shape;
 	/*! Skinning instance for the shape? */
-	Ref<NiSkinInstance > skinInstance;
+	NiSkinInstance * skinInstance;
 };
 
 }
diff --git a/include/obj/NiCamera.h b/include/obj/NiCamera.h
index 35538d3453b156a0d7de0a5a50736ee501f267ad..259b8d29ef2b5653f09dd73412ec7a37eca05bd3 100644
--- a/include/obj/NiCamera.h
+++ b/include/obj/NiCamera.h
@@ -227,7 +227,7 @@ protected:
 	/*! Level of detail adjust. */
 	float lodAdjust;
 	/*! Unknown. */
-	Ref<NiObject > unknownLink_;
+	Ref<NiObject > unknownLink;
 	/*! Unknown.  Changing value crashes viewer. */
 	unsigned int unknownInt;
 	/*! Unknown.  Changing value crashes viewer. */
diff --git a/src/obj/NiBoneLODController.cpp b/src/obj/NiBoneLODController.cpp
index 344f3a4d3dbd24a710a89497b81993ce1faaf4d6..1148af3803ba0e896d46a27308575214e79d5c24 100644
--- a/src/obj/NiBoneLODController.cpp
+++ b/src/obj/NiBoneLODController.cpp
@@ -259,10 +259,6 @@ std::list<NiObjectRef> NiBoneLODController::GetRefs() const {
 	};
 	for (unsigned int i1 = 0; i1 < shapeGroups1.size(); i1++) {
 		for (unsigned int i2 = 0; i2 < shapeGroups1[i1].linkPairs.size(); i2++) {
-			if ( shapeGroups1[i1].linkPairs[i2].shape != NULL )
-				refs.push_back(StaticCast<NiObject>(shapeGroups1[i1].linkPairs[i2].shape));
-			if ( shapeGroups1[i1].linkPairs[i2].skinInstance != NULL )
-				refs.push_back(StaticCast<NiObject>(shapeGroups1[i1].linkPairs[i2].skinInstance));
 		};
 	};
 	for (unsigned int i1 = 0; i1 < shapeGroups2.size(); i1++) {
diff --git a/src/obj/NiCamera.cpp b/src/obj/NiCamera.cpp
index f53b0aec54ab9e2bb24c88c12369f4cf25470006..710be2610d6a4836d4f164bf80d2417be9e6308a 100644
--- a/src/obj/NiCamera.cpp
+++ b/src/obj/NiCamera.cpp
@@ -20,7 +20,7 @@ using namespace Niflib;
 //Definition of TYPE constant
 const Type NiCamera::TYPE("NiCamera", &NiAVObject::TYPE );
 
-NiCamera::NiCamera() : unknownShort((unsigned short)0), frustumLeft(0.0f), frustumRight(0.0f), frustumTop(0.0f), frustumBottom(0.0f), frustumNear(0.0f), frustumFar(0.0f), useOrthographicProjection(false), viewportLeft(0.0f), viewportRight(0.0f), viewportTop(0.0f), viewportBottom(0.0f), lodAdjust(0.0f), unknownLink_(NULL), unknownInt((unsigned int)0), unknownInt2((unsigned int)0), unknownInt3((unsigned int)0) {
+NiCamera::NiCamera() : unknownShort((unsigned short)0), frustumLeft(0.0f), frustumRight(0.0f), frustumTop(0.0f), frustumBottom(0.0f), frustumNear(0.0f), frustumFar(0.0f), useOrthographicProjection(false), viewportLeft(0.0f), viewportRight(0.0f), viewportTop(0.0f), viewportBottom(0.0f), lodAdjust(0.0f), unknownLink(NULL), unknownInt((unsigned int)0), unknownInt2((unsigned int)0), unknownInt3((unsigned int)0) {
 	//--BEGIN CONSTRUCTOR CUSTOM CODE--//
 	//--END CUSTOM CODE--//
 }
@@ -98,10 +98,10 @@ void NiCamera::Write( ostream& out, const map<NiObjectRef,unsigned int> & link_m
 	NifStream( viewportBottom, out, info );
 	NifStream( lodAdjust, out, info );
 	if ( info.version < VER_3_3_0_13 ) {
-		NifStream( (unsigned int)&(*unknownLink_), out, info );
+		NifStream( (unsigned int)&(*unknownLink), out, info );
 	} else {
-		if ( unknownLink_ != NULL ) {
-			NifStream( link_map.find( StaticCast<NiObject>(unknownLink_) )->second, out, info );
+		if ( unknownLink != NULL ) {
+			NifStream( link_map.find( StaticCast<NiObject>(unknownLink) )->second, out, info );
 		} else {
 			NifStream( 0xFFFFFFFF, out, info );
 		}
@@ -138,7 +138,7 @@ std::string NiCamera::asString( bool verbose ) const {
 	out << "  Viewport Top:  " << viewportTop << endl;
 	out << "  Viewport Bottom:  " << viewportBottom << endl;
 	out << "  LOD Adjust:  " << lodAdjust << endl;
-	out << "  Unknown Link?:  " << unknownLink_ << endl;
+	out << "  Unknown Link:  " << unknownLink << endl;
 	out << "  Unknown Int:  " << unknownInt << endl;
 	out << "  Unknown Int 2:  " << unknownInt2 << endl;
 	out << "  Unknown Int 3:  " << unknownInt3 << endl;
@@ -153,7 +153,7 @@ void NiCamera::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uns
 	//--END CUSTOM CODE--//
 
 	NiAVObject::FixLinks( objects, link_stack, info );
-	unknownLink_ = FixLink<NiObject>( objects, link_stack, info );
+	unknownLink = FixLink<NiObject>( objects, link_stack, info );
 
 	//--BEGIN POST-FIXLINKS CUSTOM CODE--//
 	//--END CUSTOM CODE--//
@@ -162,8 +162,8 @@ void NiCamera::FixLinks( const map<unsigned int,NiObjectRef> & objects, list<uns
 std::list<NiObjectRef> NiCamera::GetRefs() const {
 	list<Ref<NiObject> > refs;
 	refs = NiAVObject::GetRefs();
-	if ( unknownLink_ != NULL )
-		refs.push_back(StaticCast<NiObject>(unknownLink_));
+	if ( unknownLink != NULL )
+		refs.push_back(StaticCast<NiObject>(unknownLink));
 	return refs;
 }