diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index ccda737fc62024b38fb6d3a4a98699ac7035f647..6972d4ec983cb75fa6a96e2369f1e93dbaa26985 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -327,14 +327,14 @@ bool LLWearableHoldingPattern::isDone()
 
 bool LLWearableHoldingPattern::isTimedOut()
 {
-	static F32 max_wait_time = 5.0;  // give up if wearable fetches haven't completed in max_wait_time seconds.
+	static F32 max_wait_time = 15.0;  // give up if wearable fetches haven't completed in max_wait_time seconds.
 	return mWaitTime.getElapsedTimeF32() > max_wait_time; 
 }
 
 bool LLWearableHoldingPattern::pollCompletion()
 {
 	bool done = isDone();
-	llinfos << "polling, done status: " << done << llendl;
+	llinfos << "polling, done status: " << done << " elapsed " << mWaitTime.getElapsedTimeF32() << llendl;
 	if (done)
 	{
 		// Activate all gestures in this folder
@@ -829,7 +829,10 @@ void LLAppearanceManager::updateAppearanceFromCOF()
 
 	}
 
-	doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollCompletion,holder));
+	if (!holder->pollCompletion())
+	{
+		doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollCompletion,holder));
+	}
 
 }