$OpenBSD$
--- indra/newview/llselectmgr.cpp.orig	Fri Feb  9 23:49:32 2007
+++ indra/newview/llselectmgr.cpp	Sun Feb 11 20:22:05 2007
@@ -4962,9 +4962,11 @@ void LLSelectMgr::updateSilhouettes()
 	LLSelectNode *node;
 	S32 num_sils_genned = 0;
 
+	llinfos << "Begin updateSilhouettes" << llendl;
 	LLVector3d	cameraPos = gAgent.getCameraPositionGlobal();
 	F32 currentCameraZoom = gAgent.getCurrentCameraBuildOffset();
 
+	//llinfos << "Stage 1 updateSilhouettes" << llendl;
 	if (!mSilhouetteImagep)
 	{
 		LLUUID id;
@@ -4972,6 +4974,7 @@ void LLSelectMgr::updateSilhouettes()
 		mSilhouetteImagep = gImageList.getImage(id, TRUE, TRUE);
 	}
 
+	//llinfos << "Stage 2 updateSilhouettes" << llendl;
 
 	if((cameraPos - mLastCameraPos).magVecSquared() > SILHOUETTE_UPDATE_THRESHOLD_SQUARED * currentCameraZoom * currentCameraZoom)
 	{
@@ -4985,6 +4988,7 @@ void LLSelectMgr::updateSilhouettes()
 		
 		mLastCameraPos = gAgent.getCameraPositionGlobal();
 	}
+	//llinfos << "Stage 3 updateSilhouettes" << llendl;
 	
 	LLDynamicArray<LLViewerObject*> changed_objects;
 
@@ -5032,9 +5036,11 @@ void LLSelectMgr::updateSilhouettes()
 			}
 		}
 	}
+	//llinfos << "Stage 4 updateSilhouettes" << llendl;
 
 	if (mRectSelectedObjects.size() > 0)
 	{
+		//llinfos << "Stage 5 updateSilhouettes" << llendl;
 		//gGLSPipelineSelection.set();
 
 		//mSilhouetteImagep->bindTexture();
@@ -5048,6 +5054,7 @@ void LLSelectMgr::updateSilhouettes()
 
 		BOOL select_linked_set = gSavedSettings.getBOOL("SelectLinkedSet");
 
+		//llinfos << "Stage 6 updateSilhouettes" << llendl;
 		// generate list of roots from current object selection
 		for (std::set<LLPointer<LLViewerObject> >::iterator iter = mRectSelectedObjects.begin();
 			 iter != mRectSelectedObjects.end(); iter++)
@@ -5064,6 +5071,7 @@ void LLSelectMgr::updateSilhouettes()
 			}
 		}
 
+		//llinfos << "Stage 7 updateSilhouettes" << llendl;
 		// remove highlight nodes not in roots list
 		LLDynamicArray<LLSelectNode*> remove_these_nodes;
 		LLDynamicArray<LLViewerObject*> remove_these_roots;
@@ -5092,6 +5100,7 @@ void LLSelectMgr::updateSilhouettes()
 			}
 		}
 
+		//llinfos << "Stage 8 updateSilhouettes" << llendl;
 		// remove all highlight nodes no longer in rectangle selection
 		S32 i;
 		for (i = 0; i < remove_these_nodes.count(); i++)
@@ -5105,6 +5114,7 @@ void LLSelectMgr::updateSilhouettes()
 			roots.erase(remove_these_roots[i]);
 		}
 
+		//llinfos << "Stage 9 updateSilhouettes" << llendl;
 		// add all new objects in rectangle selection
 		for (std::set<LLViewerObject*>::iterator iter = roots.begin();
 			 iter != roots.end(); iter++)
@@ -5144,6 +5154,7 @@ void LLSelectMgr::updateSilhouettes()
 
 		num_sils_genned	= 0;
 
+		//llinfos << "Stage 9 updateSilhouettes" << llendl;
 		// render silhouettes for highlighted objects
 		//BOOL subtracting_from_selection = (gKeyboard->currentMask(TRUE) == MASK_CONTROL);
 		for (S32 pass = 0; pass < 2; pass++)
@@ -5200,11 +5211,13 @@ void LLSelectMgr::updateSilhouettes()
 		mHighlightedObjects.deleteAllNodes();
 	}
 
+	//llinfos << "Stage 10 updateSilhouettes" << llendl;
 	for (S32 i = 0; i < changed_objects.count(); i++)
 	{
 		// clear flags after traversing node list (as child objects need to refer to parent flags, etc)
 		changed_objects[i]->clearChanged(LLXform::MOVED | LLXform::SILHOUETTE);
 	}
+	//llinfos << "Stage 11 updateSilhouettes (THE END)" << llendl;
 	
 	//glAlphaFunc(GL_GREATER, 0.01f);
 }
