diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index f8a0987160a078d4c41f588edc6ebc1090bce626..8789569dbf560adf6506968d6b822d1a9abf9f3d 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -797,7 +797,7 @@ BOOL LLPrimitive::setVolume(const LLVolumeParams &volume_params, const S32 detai
 		}
 
 		volumep = sVolumeManager->refVolume(volume_params, detail);
-		if (volumep == mVolumep)
+		if (volumep == mVolumep.get())
 		{
 			sVolumeManager->unrefVolume( volumep );  // LLVolumeMgr::refVolume() creates a reference, but we don't need a second one.
 			return TRUE;
diff --git a/indra/llxml/llxmlnode.cpp b/indra/llxml/llxmlnode.cpp
index 4c260935490b2f5d7bed9f1beb8ed5783d3c6aab..916e0b6cb9e58a2d8f2dc882d167bed2ed2ff1c2 100644
--- a/indra/llxml/llxmlnode.cpp
+++ b/indra/llxml/llxmlnode.cpp
@@ -218,13 +218,13 @@ BOOL LLXMLNode::removeChild(LLXMLNode *target_child)
 		LLXMLChildList::iterator children_itr = mChildren->map.find(target_child->mName);
 		while (children_itr != mChildren->map.end())
 		{
-			if (target_child == children_itr->second)
+			if (target_child == children_itr->second.get())
 			{
-				if (target_child == mChildren->head)
+				if (target_child == mChildren->head.get())
 				{
 					mChildren->head = target_child->mNext;
 				}
-				if (target_child == mChildren->tail)
+				if (target_child == mChildren->tail.get())
 				{
 					mChildren->tail = target_child->mPrev;
 				}
diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp
index 2303479e764ac88ca049590b1f8ecf3541d9f9b1..351270adbc74a21c0f832c5d17383f22de445d70 100644
--- a/indra/newview/lldrawpool.cpp
+++ b/indra/newview/lldrawpool.cpp
@@ -414,7 +414,7 @@ void LLRenderPass::renderRiggedGroup(LLSpatialGroup* group, U32 type, U32 mask,
         LLDrawInfo* pparams = *k;
         if (pparams) 
         {
-            if (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash)
+            if (lastAvatar != pparams->mAvatar.get() || lastMeshId != pparams->mSkinInfo->mHash)
             {
                 uploadMatrixPalette(*pparams);
                 lastAvatar = pparams->mAvatar;
@@ -450,7 +450,7 @@ void LLRenderPass::pushRiggedBatches(U32 type, U32 mask, BOOL texture, BOOL batc
         LLDrawInfo* pparams = *i;
         if (pparams)
         {
-            if (pparams->mAvatar.notNull() && (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash))
+            if (pparams->mAvatar.notNull() && (lastAvatar != pparams->mAvatar.get() || lastMeshId != pparams->mSkinInfo->mHash))
             {
                 uploadMatrixPalette(*pparams);
                 lastAvatar = pparams->mAvatar;
@@ -495,7 +495,7 @@ void LLRenderPass::pushRiggedMaskBatches(U32 type, U32 mask, BOOL texture, BOOL
                 gGL.flush();
             }
 
-            if (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash)
+            if (lastAvatar != pparams->mAvatar.get() || lastMeshId != pparams->mSkinInfo->mHash)
             {
                 uploadMatrixPalette(*pparams);
                 lastAvatar = pparams->mAvatar;
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index b46ef80fe876532aff8270612bef3f249daeb713..0568270dd2358126863f7038cc28b5cf05e07fd5 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -353,7 +353,7 @@ void LLDrawPoolAlpha::renderAlphaHighlight(U32 mask)
 
                     if (rigged)
                     {
-                        if (lastAvatar != params.mAvatar ||
+                        if (lastAvatar != params.mAvatar.get() ||
                             lastMeshId != params.mSkinInfo->mHash)
                         {
                             if (!uploadMatrixPalette(params))
@@ -514,7 +514,7 @@ void LLDrawPoolAlpha::renderRiggedEmissives(U32 mask, std::vector<LLDrawInfo*>&
     for (LLDrawInfo* draw : emissives)
     {
         bool tex_setup = TexSetup(draw, false);
-        if (lastAvatar != draw->mAvatar || lastMeshId != draw->mSkinInfo->mHash)
+        if (lastAvatar != draw->mAvatar.get() || lastMeshId != draw->mSkinInfo->mHash)
         {
             if (!uploadMatrixPalette(*draw))
             { // failed to upload matrix palette, skip rendering
@@ -708,7 +708,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged)
 
                 if (params.mAvatar != nullptr)
                 {
-                    if (lastAvatar != params.mAvatar ||
+                    if (lastAvatar != params.mAvatar.get() ||
                         lastMeshId != params.mSkinInfo->mHash ||
                         lastAvatarShader != LLGLSLShader::sCurBoundShaderPtr)
                     {
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 906b1139a6b3522a0efd1b45ee53b263fa16e79b..2fd85ff7e454b6832debba92329e8a89d5ad2662 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -704,7 +704,7 @@ void LLDrawPoolBump::renderDeferred(S32 pass)
 
             if (rigged)
             {
-                if (avatar != params.mAvatar || skin != params.mSkinInfo->mHash)
+                if (avatar != params.mAvatar.get() || skin != params.mSkinInfo->mHash)
                 {
                     uploadMatrixPalette(params);
                     avatar = params.mAvatar;
@@ -1332,7 +1332,7 @@ void LLDrawPoolBump::renderBump(U32 type, U32 mask)
 		{
             if (mRigged)
             {
-                if (avatar != params.mAvatar || skin != params.mSkinInfo->mHash)
+                if (avatar != params.mAvatar.get() || skin != params.mSkinInfo->mHash)
                 {
                     if (uploadMatrixPalette(params))
                     {
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp
index 26482130bd065acd95b6077272a526935dc6a932..4e3e91d03e219576dd1fbb9a4122091b51158fea 100644
--- a/indra/newview/llhudeffectlookat.cpp
+++ b/indra/newview/llhudeffectlookat.cpp
@@ -440,7 +440,7 @@ BOOL LLHUDEffectLookAt::setLookAt(ELookAtType target_type, LLViewerObject *objec
 	if (!clamp_lookat)
 	{
 		// type of lookat behavior or target object has changed
-		bool lookAtChanged = (target_type != mTargetType) || (object != mTargetObject);
+		bool lookAtChanged = (target_type != mTargetType) || (object != mTargetObject.get());
 
 		// lookat position has moved a certain amount and we haven't just sent an update
 		lookAtChanged = lookAtChanged || ((dist_vec_squared(position, mLastSentOffsetGlobal) > MIN_DELTAPOS_FOR_UPDATE_SQUARED) && 
diff --git a/indra/newview/llhudeffectpointat.cpp b/indra/newview/llhudeffectpointat.cpp
index ecf6d42d692af8f0e14028c9db10bf76a36adc3b..ebce62a62711642ca8add4706e6ac7f564d781c9 100644
--- a/indra/newview/llhudeffectpointat.cpp
+++ b/indra/newview/llhudeffectpointat.cpp
@@ -242,7 +242,7 @@ BOOL LLHUDEffectPointAt::setPointAt(EPointAtType target_type, LLViewerObject *ob
 	
 	// type of pointat behavior or target object has changed
 	BOOL targetTypeChanged = (target_type != mTargetType) ||
-		(object != mTargetObject);
+		(object != mTargetObject.get());
 
 	BOOL targetPosChanged = (dist_vec_squared(position, mLastSentOffsetGlobal) > MIN_DELTAPOS_FOR_UPDATE_SQUARED) && 
 		((current_time - mLastSendTime) > (1.f / MAX_SENDS_PER_SEC));
diff --git a/indra/newview/llhudeffecttrail.cpp b/indra/newview/llhudeffecttrail.cpp
index 5fbfa393360a30f9ac9608762f60989a682e42df..a033c3ae08a79a79e743883153b6f7fbb78ccb22 100644
--- a/indra/newview/llhudeffecttrail.cpp
+++ b/indra/newview/llhudeffecttrail.cpp
@@ -252,7 +252,7 @@ void LLHUDEffectSpiral::triggerLocal()
 
 void LLHUDEffectSpiral::setTargetObject(LLViewerObject *objp)
 {
-	if (objp == mTargetObject)
+	if (objp == mTargetObject.get())
 	{
 		return;
 	}
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index 7e18da88a7b63da79edf8b507579b017c4e2f243..063c2e8c863722df2effbb72f721f2aa3ea61cc7 100644
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
@@ -85,7 +85,7 @@ F32 LLHUDObject::getDistance() const
 
 void LLHUDObject::setSourceObject(LLViewerObject* objectp)
 {
-	if (objectp == mSourceObject)
+	if (objectp == mSourceObject.get())
 	{
 		return;
 	}
@@ -95,7 +95,7 @@ void LLHUDObject::setSourceObject(LLViewerObject* objectp)
 
 void LLHUDObject::setTargetObject(LLViewerObject* objectp)
 {
-	if (objectp == mTargetObject)
+	if (objectp == mTargetObject.get())
 	{
 		return;
 	}
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index a9869224ec4d4565926db07895de4a5bd800fa87..3fe4b68a06979001015c18b01b9079a298c8143d 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -7313,7 +7313,7 @@ void LLObjectSelection::moveNodeToFront(LLSelectNode *nodep)
 void LLObjectSelection::removeNode(LLSelectNode *nodep)
 {
 	mSelectNodeMap.erase(nodep->getObject());
-	if (nodep->getObject() == mPrimaryObject)
+	if (nodep->getObject() == mPrimaryObject.get())
 	{
 		mPrimaryObject = NULL;
 	}
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index bd18b997b46971e4678e26402ef051dbeb755a26..2664751ea192840522baf5720b3cf382ee2b6d8d 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -788,7 +788,7 @@ bool LLViewerTexture::bindDefaultImage(S32 stage)
 		// use default if we've got it
 		res = gGL.getTexUnit(stage)->bind(LLViewerFetchedTexture::sDefaultImagep);
 	}
-	if (!res && LLViewerTexture::sNullImagep.notNull() && (this != LLViewerTexture::sNullImagep))
+	if (!res && LLViewerTexture::sNullImagep.notNull() && (this != LLViewerTexture::sNullImagep.get()))
 	{
 		res = gGL.getTexUnit(stage)->bind(LLViewerTexture::sNullImagep);
 	}
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 0f524ebceb581efe3252cba07738e2f5527f3a04..23e10ece00671d45ee00d6349eaac2d08c73b7a3 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1449,7 +1449,7 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 								// Check the whitelist, if there's media (otherwise just show it)
 								if (te->getMediaData() == NULL || te->getMediaData()->checkCandidateUrl(url))
 								{
-									if ( obj != mDragHoveredObject)
+									if ( obj != mDragHoveredObject.get())
 									{
 										// Highlight the dragged object
 										LLSelectMgr::getInstance()->unhighlightObjectOnly(mDragHoveredObject);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 781b43913033e4a48620df42d1123f0c60164238..8998fc585ad0bc8ab83fae576659f215d9ea1840 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -7466,7 +7466,7 @@ void LLPipeline::renderAlphaObjects(U32 mask, bool texture, bool batch_texture,
             {
                 if (pparams->mAvatar != nullptr)
                 {
-                    if (lastAvatar != pparams->mAvatar || lastMeshId != pparams->mSkinInfo->mHash)
+                    if (lastAvatar != pparams->mAvatar.get() || lastMeshId != pparams->mSkinInfo->mHash)
                     {
                         mSimplePool->uploadMatrixPalette(*pparams);
                         lastAvatar = pparams->mAvatar;