diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 0cceba6cb004d39939b7aff1e54e0f89be212a7f..aad39854e432e037048d21192b339c6c84e23293 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -113,6 +113,8 @@ class LLWearInventoryCategoryCallback : public LLInventoryCallback
 protected:
 	~LLWearInventoryCategoryCallback()
 	{
+		llinfos << "BAP done all inventory callbacks" << llendl;
+		
 		// Is the destructor called by ordinary dereference, or because the app's shutting down?
 		// If the inventory callback manager goes away, we're shutting down, no longer want the callback.
 		if( LLInventoryCallbackManager::is_instantiated() )
@@ -150,12 +152,15 @@ class LLOutfitObserver : public LLInventoryFetchObserver
 
 void LLOutfitObserver::done()
 {
+	llinfos << "BAP done 2nd stage fetch" << llendl;
 	gInventory.removeObserver(this);
 	doOnIdle(boost::bind(&LLOutfitObserver::doWearCategory,this));
 }
 
 void LLOutfitObserver::doWearCategory()
 {
+	llinfos << "BAP start" << llendl;
+	
 	// We now have an outfit ready to be copied to agent inventory. Do
 	// it, and wear that outfit normally.
 	if(mCopyItems)
@@ -244,6 +249,8 @@ void LLOutfitFetch::done()
 	// What we do here is get the complete information on the items in
 	// the library, and set up an observer that will wait for that to
 	// happen.
+	llinfos << "BAP done first stage fetch" << llendl;
+	
 	LLInventoryModel::cat_array_t cat_array;
 	LLInventoryModel::item_array_t item_array;
 	gInventory.collectDescendents(mCompleteFolders.front(),
@@ -304,6 +311,8 @@ class LLUpdateAppearanceOnDestroy: public LLInventoryCallback
 
 	virtual ~LLUpdateAppearanceOnDestroy()
 	{
+		llinfos << "BAP done update appearance on destroy" << llendl;
+
 		if (!LLApp::isExiting())
 		{
 			LLAppearanceManager::instance().updateAppearanceFromCOF();
@@ -312,6 +321,7 @@ class LLUpdateAppearanceOnDestroy: public LLInventoryCallback
 
 	/* virtual */ void fire(const LLUUID& inv_item)
 	{
+		llinfos << "BAP fire" << llendl;
 		mFireCount++;
 	}
 private:
@@ -703,6 +713,8 @@ void LLAppearanceManager::linkAll(const LLUUID& category,
 
 void LLAppearanceManager::updateCOF(const LLUUID& category, bool append)
 {
+	llinfos << "BAP updating cof" << llendl;
+
 	const LLUUID cof = getCOF();
 
 	// Deactivate currently active gestures in the COF, if replacing outfit
@@ -760,18 +772,26 @@ void LLAppearanceManager::updateCOF(const LLUUID& category, bool append)
 	gInventory.notifyObservers();
 
 	// Create links to new COF contents.
+	llinfos << "BAP creating LLUpdateAppearanceOnDestroy" << llendl;
 	LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
 
 	linkAll(cof, body_items, link_waiter);
+	llinfos << "BAP submitted all body_items link requests" << llendl;
 	linkAll(cof, wear_items, link_waiter);
+	llinfos << "BAP submitted all wear_items link requests" << llendl;
 	linkAll(cof, obj_items, link_waiter);
+	llinfos << "BAP submitted all obj link requests" << llendl;
 	linkAll(cof, gest_items, link_waiter);
 
+	llinfos << "BAP submitted all gest link requests" << llendl;
+
 	// Add link to outfit if category is an outfit. 
 	if (!append)
 	{
 		createBaseOutfitLink(category, link_waiter);
 	}
+	llinfos << "BAP submitted all link requests" << llendl;
+	llinfos << "BAP waiting for LLUpdateAppearanceOnDestroy" << llendl;
 }
 
 void LLAppearanceManager::updatePanelOutfitName(const std::string& name)
@@ -843,6 +863,8 @@ void LLAppearanceManager::updateAppearanceFromCOF()
 {
 	// update dirty flag to see if the state of the COF matches
 	// the saved outfit stored as a folder link
+	llinfos << "BAP update appearance starts" << llendl;
+
 	updateIsDirty();
 
 	dumpCat(getCOF(),"COF, start");
@@ -973,8 +995,11 @@ void LLAppearanceManager::wearInventoryCategory(LLInventoryCategory* category, b
 {
 	if(!category) return;
 
+	llinfos << "BAP wearInventoryCategory" << llendl;
+	
 	lldebugs << "wearInventoryCategory( " << category->getName()
 			 << " )" << llendl;
+
 	// What we do here is get the complete information on the items in
 	// the inventory, and set up an observer that will wait for that to
 	// happen.
@@ -1003,6 +1028,8 @@ void LLAppearanceManager::wearInventoryCategoryOnAvatar( LLInventoryCategory* ca
 	// this up front to avoid having to deal with the case of multiple
 	// wearables being dirty.
 	if(!category) return;
+	llinfos << "BAP wearInventoryCategoryOnAvatar( " << category->getName()
+			 << " )" << llendl;
 	lldebugs << "wearInventoryCategoryOnAvatar( " << category->getName()
 			 << " )" << llendl;
 			 	
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index d1b91df6e9135b5bf595d83bc0cb689ea37afd43..171b441b2b248ceadbb1ed71ee17a26f00faa532 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2544,6 +2544,8 @@ bool callback_choose_gender(const LLSD& notification, const LLSD& response)
 void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
 								   const std::string& gender_name )
 {
+	llinfos << "BAP load initial outfit start" << llendl;
+
 	// Not going through the processAgentInitialWearables path, so need to set this here.
 	LLAppearanceManager::instance().setAttachmentInvLinkEnable(true);
 	// Initiate creation of COF, since we're also bypassing that.