diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 9f764c6e41eef6a473fd9f97b34cba870d03b194..6e350a5b1dccdedbe676f289fac7f546d4927811 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3257,6 +3257,10 @@ void LLAgent::processControlRelease(LLMessageSystem *msg, void **)
 void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void **user_data)
 {
 	gAgentQueryManager.mNumPendingQueries--;
+	if (gAgentQueryManager.mNumPendingQueries == 0)
+	{
+		selfStopPhase("fetch_texture_cache_entries");
+	}
 
 	if (!isAgentAvatarValid() || gAgentAvatarp->isDead())
 	{
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 13f76c0593baf2adcff27f4964ceb41305cdb9dd..fe0b3ff6761aa20661b6406a082a9ee1e93ff4e0 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1708,7 +1708,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
 		return;
 	}
 
-	selfStartPhase("update_appearance_from_cof");
+	LLVOAvatar::ScopedPhaseSetter(gAgentAvatarp,"update_appearance_from_cof");
 	
 	BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF);
 
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index df9d8143b16fa81221718ce2409ce048ae2487d6..76261c0dc8f8fe9ee48fdd52c812456d16d11210 100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -290,6 +290,24 @@ class LLVOAvatar :
 	void			stopAllPhases();
 	void			clearPhases();
 	LLSD			dumpPhases();
+
+	class ScopedPhaseSetter
+	{
+	public:
+		ScopedPhaseSetter(LLVOAvatar* avatar, std::string phase_name):
+			mAvatar(avatar),mPhaseName(phase_name)
+		{
+			if (mAvatar) { mAvatar->startPhase(mPhaseName); }
+		}
+		~ScopedPhaseSetter()
+		{
+			if (mAvatar) { mAvatar->stopPhase(mPhaseName); }
+		}
+	private:
+		std::string mPhaseName;
+		LLVOAvatar* mAvatar;
+	};
+
 protected:
 	BOOL			updateIsFullyLoaded();
 	BOOL			processFullyLoadedChange(bool loading);
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 4e75582a935cc15d45759695d518119ee40c2cd7..33f33b202f70a738954e714951ee3bbaae5aa650 100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -2136,7 +2136,7 @@ class ViewerAppearanceChangeMetricsResponder: public LLCurl::Responder
 
 void LLVOAvatarSelf::sendAppearanceChangeMetrics()
 {
-	gAgentAvatarp->stopAllPhases();
+	// gAgentAvatarp->stopAllPhases();
 
 	LLSD msg = metricsData();
 	msg["message"] = "ViewerAppearanceChangeMetrics";