diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 77fd66e4bacb82fc81bde3d7e98741d07e401798..5a059008c460e656f54ac4617dab8223d7600729 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -182,9 +182,11 @@ void LLAgentWearables::initClass()
 void LLAgentWearables::setAvatarObject(LLVOAvatarSelf *avatar)
 {
 	llassert(avatar);
-	avatar->outputRezTiming("Sending wearables request");
-	sendAgentWearablesRequest();
 	setAvatarAppearance(avatar);
+	gAgentWearables.notifyLoadingStarted();
+	callAfterCategoryFetch(LLAppearanceMgr::instance().getCOF(),
+						   boost::bind(&LLAppearanceMgr::updateAppearanceFromCOF,
+									   LLAppearanceMgr::getInstance(), true, true, no_op));
 }
 
 // wearables
@@ -302,6 +304,8 @@ void LLAgentWearables::addWearabletoAgentInventoryDone(const LLWearableType::ETy
 // SUNSHINE CLEANUP dead?
 void LLAgentWearables::sendAgentWearablesUpdate()
 {
+	return; // try as NO_OP // SUNSHINE CLEANUP
+#if 0
 	// First make sure that we have inventory items for each wearable
 	for (S32 type=0; type < LLWearableType::WT_COUNT; ++type)
 	{
@@ -372,6 +376,7 @@ void LLAgentWearables::sendAgentWearablesUpdate()
 		lldebugs << "       " << LLWearableType::getTypeLabel((LLWearableType::EType)type) << ": " << (wearable ? wearable->getAssetID() : LLUUID::null) << llendl;
 	}
 	gAgent.sendReliableMessage();
+#endif
 }
 
 void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update,
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 91efed1508b2830e8a083ccb77731174505be5fd..dc8acc91a9310d2d44b1380e9b350b8f81796ee5 100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -57,6 +57,7 @@
 #include "llaudiosourcevo.h"
 #include "llagent.h"
 #include "llagentcamera.h"
+#include "llagentwearables.h"
 #include "llbbox.h"
 #include "llbox.h"
 #include "llcylinder.h"
@@ -140,6 +141,7 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
 			{
 				gAgentAvatarp = new LLVOAvatarSelf(id, pcode, regionp);
 				gAgentAvatarp->initInstance();
+				gAgentWearables.setAvatarObject(gAgentAvatarp);
 			}
 			else 
 			{
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 97429329a89bdaf5fba60acc68c8aa76128e930d..498f8c8277335e0face6acdbfbc7eec61601c121 100755
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -161,8 +161,6 @@ LLVOAvatarSelf::LLVOAvatarSelf(const LLUUID& id,
 	mRegionCrossingCount(0),
 	mInitialBakesLoaded(false)
 {
-	gAgentWearables.setAvatarObject(this);
-
 	mMotionController.mIsSelf = TRUE;
 
 	lldebugs << "Marking avatar as self " << id << llendl;