diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp
index 446e3d73444f9d0257f661a3858966c85b5ed052..2a43916079bbaf2ca2c24131c69f0b4a718d8398 100644
--- a/indra/llui/llconsole.cpp
+++ b/indra/llui/llconsole.cpp
@@ -188,7 +188,8 @@ void LLConsole::draw()
 
 	F32 line_height = mFont->getLineHeight();
 
-	for(paragraph_it = mParagraphs.rbegin(); paragraph_it != mParagraphs.rend(); paragraph_it++)
+	auto paragraph_rend = mParagraphs.rend();
+	for(paragraph_it = mParagraphs.rbegin(); paragraph_it != paragraph_rend; ++paragraph_it)
 	{
 		S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + padding_vertical);
 		S32 target_width =  llfloor( (*paragraph_it).mMaxWidth + padding_horizontal);
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 07062bd8f17db2f8e55aef13ec89c48944b3cd8d..fddea594f3ddbe9d19e438467d5d73e2f924d20e 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -96,10 +96,8 @@ LLFloater* LLFloaterReg::getLastFloaterCascading()
 
 		instance_list_t& instances = sInstanceMap[group_name];
 
-		for (instance_list_t::const_iterator iter = instances.begin(); iter != instances.end(); ++iter)
+		for (LLFloater* inst : instances)
 		{
-			LLFloater* inst = *iter;
-
 			if (inst->getVisible() 
 				&& (inst->isPositioning(LLFloaterEnums::POSITIONING_CASCADING)
 					|| inst->isPositioning(LLFloaterEnums::POSITIONING_CASCADE_GROUP)))
@@ -124,9 +122,8 @@ LLFloater* LLFloaterReg::findInstance(const std::string& name, const LLSD& key)
 	if (!groupname.empty())
 	{
 		instance_list_t& list = sInstanceMap[groupname];
-		for (instance_list_t::iterator iter = list.begin(); iter != list.end(); ++iter)
+		for (LLFloater* inst : list)
 		{
-			LLFloater* inst = *iter;
 			if (inst->matchesKey(key))
 			{
 				res = inst;
@@ -197,7 +194,7 @@ LLFloater* LLFloaterReg::removeInstance(const std::string& name, const LLSD& key
 	if (!groupname.empty())
 	{
 		instance_list_t& list = sInstanceMap[groupname];
-		for (instance_list_t::iterator iter = list.begin(); iter != list.end(); ++iter)
+		for (instance_list_t::iterator iter = list.begin(), end = list.end(); iter != end; ++iter)
 		{
 			LLFloater* inst = *iter;
 			if (inst->matchesKey(key))
diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index c0d0bbb861acbed1226f8cf6eb2234ea9a2c21f5..402a0100c0c935d1e5e833de9786dcc3780c6a72 100644
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -48,6 +48,7 @@
 
 // Third-party library includes
 #include <algorithm>
+#include <boost/range/adaptor/reversed.hpp>
 
 ///----------------------------------------------------------------------------
 /// Local function declarations, constants, enums, and typedefs
@@ -1916,10 +1917,8 @@ bool LLFolderView::isFolderSelected()
 
 bool LLFolderView::selectFirstItem()
 {
-	for (folders_t::iterator iter = mFolders.begin();
-		 iter != mFolders.end();++iter)
+	for (LLFolderViewFolder* folder : mFolders)
 	{
-		LLFolderViewFolder* folder = (*iter );
 		if (folder->getVisible())
 		{
 			LLFolderViewItem* itemp = folder->getNextFromChild(0,true);
@@ -1929,10 +1928,8 @@ bool LLFolderView::selectFirstItem()
 		}
 		
 	}
-	for(items_t::iterator iit = mItems.begin();
-		iit != mItems.end(); ++iit)
+	for(LLFolderViewItem* itemp : mItems)
 	{
-		LLFolderViewItem* itemp = (*iit);
 		if (itemp->getVisible())
 		{
 			setSelection(itemp,FALSE,TRUE);
@@ -1943,20 +1940,16 @@ bool LLFolderView::selectFirstItem()
 }
 bool LLFolderView::selectLastItem()
 {
-	for(items_t::reverse_iterator iit = mItems.rbegin();
-		iit != mItems.rend(); ++iit)
+	for(LLFolderViewItem* itemp : boost::adaptors::reverse(mItems))
 	{
-		LLFolderViewItem* itemp = (*iit);
 		if (itemp->getVisible())
 		{
 			setSelection(itemp,FALSE,TRUE);
 			return true;	
 		}
 	}
-	for (folders_t::reverse_iterator iter = mFolders.rbegin();
-		 iter != mFolders.rend();++iter)
+	for (LLFolderViewFolder* folder : boost::adaptors::reverse(mFolders))
 	{
-		LLFolderViewFolder* folder = (*iter);
 		if (folder->getVisible())
 		{
 			LLFolderViewItem* itemp = folder->getPreviousFromChild(0,true);
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index a7a0e013aa66974dedf3edf7d68f2bb2c6f3a3a8..999c50376beac201c7979184104e1598ea09009f 100644
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -38,6 +38,8 @@
 #include "lltrans.h"
 #include "llwindow.h"
 
+#include <boost/range/adaptor/reversed.hpp>
+
 ///----------------------------------------------------------------------------
 /// Class LLFolderViewItem
 ///----------------------------------------------------------------------------
@@ -1025,9 +1027,8 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 		// We have to verify that there's at least one child that's not filtered out
 		bool found = false;
 		// Try the items first
-		for (items_t::iterator iit = mItems.begin(); iit != mItems.end(); ++iit)
+		for (LLFolderViewItem* itemp : mItems)
 		{
-			LLFolderViewItem* itemp = (*iit);
 			found = itemp->isPotentiallyVisible();
 			if (found)
 				break;
@@ -1035,9 +1036,8 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 		if (!found)
 		{
 			// If no item found, try the folders
-			for (folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit)
+			for (LLFolderViewFolder* folderp : mFolders)
 			{
-				LLFolderViewFolder* folderp = (*fit);
 				found = folderp->isPotentiallyVisible();
 				if (found)
 					break;
@@ -1074,9 +1074,8 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 			// Add sizes of children
 			S32 parent_item_height = getRect().getHeight();
 
-			for(folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit)
+			for (LLFolderViewFolder* folderp : mFolders)
 			{
-				LLFolderViewFolder* folderp = (*fit);
 				folderp->setVisible(folderp->isPotentiallyVisible());
 
 				if (folderp->getVisible())
@@ -1092,10 +1091,8 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 					folderp->setOrigin( 0, child_top - folderp->getRect().getHeight() );
 				}
 			}
-			for(items_t::iterator iit = mItems.begin();
-				iit != mItems.end(); ++iit)
+			for(LLFolderViewItem* itemp : mItems)
 			{
-				LLFolderViewItem* itemp = (*iit);
 				itemp->setVisible(itemp->isPotentiallyVisible());
 
 				if (itemp->getVisible())
@@ -1133,28 +1130,24 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 		requestArrange();
 
 		// hide child elements that fall out of current animated height
-		for (folders_t::iterator iter = mFolders.begin();
-			iter != mFolders.end();)
+		for (LLFolderViewFolder* folderp : mFolders)
 		{
-			folders_t::iterator fit = iter++;
 			// number of pixels that bottom of folder label is from top of parent folder
-			if (getRect().getHeight() - (*fit)->getRect().mTop + (*fit)->getItemHeight() 
+			if (getRect().getHeight() - folderp->getRect().mTop + folderp->getItemHeight()
 				> ll_round(mCurHeight) + mMaxFolderItemOverlap)
 			{
 				// hide if beyond current folder height
-				(*fit)->setVisible(FALSE);
+				folderp->setVisible(FALSE);
 			}
 		}
 
-		for (items_t::iterator iter = mItems.begin();
-			iter != mItems.end();)
+		for (LLFolderViewItem* itemp : mItems)
 		{
-			items_t::iterator iit = iter++;
 			// number of pixels that bottom of item label is from top of parent folder
-			if (getRect().getHeight() - (*iit)->getRect().mBottom
+			if (getRect().getHeight() - itemp->getRect().mBottom
 				> ll_round(mCurHeight) + mMaxFolderItemOverlap)
 			{
-				(*iit)->setVisible(FALSE);
+				itemp->setVisible(FALSE);
 			}
 		}
 	}
@@ -1206,21 +1199,17 @@ BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem
 	}
 	BOOL child_selected = FALSE;
 
-	for (folders_t::iterator iter = mFolders.begin();
-		iter != mFolders.end();)
+	for (LLFolderViewFolder* folderp : mFolders)
 	{
-		folders_t::iterator fit = iter++;
-		if((*fit)->setSelection(selection, openitem, take_keyboard_focus))
+		if(folderp->setSelection(selection, openitem, take_keyboard_focus))
 		{
 			rv = TRUE;
 			child_selected = TRUE;
 		}
 	}
-	for (items_t::iterator iter = mItems.begin();
-		iter != mItems.end();)
+	for (LLFolderViewItem* itemp : mItems)
 	{
-		items_t::iterator iit = iter++;
-		if((*iit)->setSelection(selection, openitem, take_keyboard_focus))
+		if(itemp->setSelection(selection, openitem, take_keyboard_focus))
 		{
 			rv = TRUE;
 			child_selected = TRUE;
@@ -1256,20 +1245,16 @@ BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection, BOOL selec
 		}
 	}
 
-	for (folders_t::iterator iter = mFolders.begin();
-		iter != mFolders.end();)
+	for (LLFolderViewFolder* folderp : mFolders)
 	{
-		folders_t::iterator fit = iter++;
-		if((*fit)->changeSelection(selection, selected))
+		if(folderp->changeSelection(selection, selected))
 		{
 			rv = TRUE;
 		}
 	}
-	for (items_t::iterator iter = mItems.begin();
-		iter != mItems.end();)
+	for (LLFolderViewItem* itemp : mItems)
 	{
-		items_t::iterator iit = iter++;
-		if((*iit)->changeSelection(selection, selected))
+		if(itemp->changeSelection(selection, selected))
 		{
 			rv = TRUE;
 		}
@@ -1372,39 +1357,35 @@ void LLFolderViewFolder::gatherChildRangeExclusive(LLFolderViewItem* start, LLFo
 	bool selecting = start == NULL;
 	if (reverse)
 	{
-		for (items_t::reverse_iterator it = mItems.rbegin(), end_it = mItems.rend();
-			it != end_it;
-			++it)
+		for (LLFolderViewItem* itemp : boost::adaptors::reverse(mItems))
 		{
-			if (*it == end)
+			if (itemp == end)
 			{
 				return;
 			}
-			if (selecting && (*it)->getVisible())
+			if (selecting && itemp->getVisible())
 			{
-				items.push_back(*it);
+				items.push_back(itemp);
 			}
 
-			if (*it == start)
+			if (itemp == start)
 			{
 				selecting = true;
 			}
 		}
-		for (folders_t::reverse_iterator it = mFolders.rbegin(), end_it = mFolders.rend();
-			it != end_it;
-			++it)
+		for (LLFolderViewFolder* folderp : boost::adaptors::reverse(mFolders))
 		{
-			if (*it == end)
+			if (folderp == end)
 			{
 				return;
 			}
 
-			if (selecting && (*it)->getVisible())
+			if (selecting && (folderp)->getVisible())
 			{
-				items.push_back(*it);
+				items.push_back(folderp);
 			}
 
-			if (*it == start)
+			if (folderp == start)
 			{
 				selecting = true;
 			}
@@ -1412,40 +1393,36 @@ void LLFolderViewFolder::gatherChildRangeExclusive(LLFolderViewItem* start, LLFo
 	}
 	else
 	{
-		for (folders_t::iterator it = mFolders.begin(), end_it = mFolders.end();
-			it != end_it;
-			++it)
+		for (LLFolderViewFolder* folderp : mFolders)
 		{
-			if (*it == end)
+			if (folderp == end)
 			{
 				return;
 			}
 
-			if (selecting && (*it)->getVisible())
+			if (selecting && (folderp)->getVisible())
 			{
-				items.push_back(*it);
+				items.push_back(folderp);
 			}
 
-			if (*it == start)
+			if (folderp == start)
 			{
 				selecting = true;
 			}
 		}
-		for (items_t::iterator it = mItems.begin(), end_it = mItems.end();
-			it != end_it;
-			++it)
+		for (LLFolderViewItem* itemp : mItems)
 		{
-			if (*it == end)
+			if (itemp == end)
 			{
 				return;
 			}
 
-			if (selecting && (*it)->getVisible())
+			if (selecting && itemp->getVisible())
 			{
-				items.push_back(*it);
+				items.push_back(itemp);
 			}
 
-			if (*it == start)
+			if (itemp == start)
 			{
 				selecting = true;
 			}
@@ -1605,11 +1582,9 @@ BOOL LLFolderViewFolder::isMovable()
 			}
 		}
 
-		for (folders_t::iterator iter = mFolders.begin();
-			iter != mFolders.end();)
+		for (LLFolderViewFolder* folderp : mFolders)
 		{
-			folders_t::iterator fit = iter++;
-			if(!(*fit)->isMovable())
+			if(!folderp->isMovable())
 			{
 				return FALSE;
 			}
@@ -1625,21 +1600,17 @@ BOOL LLFolderViewFolder::isRemovable()
 			return FALSE;
 		}
 
-		for (items_t::iterator iter = mItems.begin();
-			iter != mItems.end();)
-		{
-			items_t::iterator iit = iter++;
-			if(!(*iit)->isRemovable())
+	for (LLFolderViewItem* itemp : mItems)
+	{
+			if(!itemp->isRemovable())
 			{
 				return FALSE;
 			}
 		}
 
-		for (folders_t::iterator iter = mFolders.begin();
-			iter != mFolders.end();)
+		for (LLFolderViewFolder* folderp : mFolders)
 		{
-			folders_t::iterator fit = iter++;
-			if(!(*fit)->isRemovable())
+			if(!folderp->isRemovable())
 			{
 				return FALSE;
 			}
@@ -1786,17 +1757,13 @@ void LLFolderViewFolder::openItem( void )
 
 void LLFolderViewFolder::applyFunctorToChildren(LLFolderViewFunctor& functor)
 {
-	for (folders_t::iterator iter = mFolders.begin();
-		iter != mFolders.end();)
+	for (LLFolderViewFolder* folderp : mFolders)
 	{
-		folders_t::iterator fit = iter++;
-		functor.doItem((*fit));
+		functor.doItem(folderp);
 	}
-	for (items_t::iterator iter = mItems.begin();
-		iter != mItems.end();)
+	for (LLFolderViewItem* itemp : mItems)
 	{
-		items_t::iterator iit = iter++;
-		functor.doItem((*iit));
+		functor.doItem(itemp);
 	}
 }
 
@@ -1804,17 +1771,13 @@ void LLFolderViewFolder::applyFunctorRecursively(LLFolderViewFunctor& functor)
 {
 	functor.doFolder(this);
 
-	for (folders_t::iterator iter = mFolders.begin();
-		iter != mFolders.end();)
+	for (LLFolderViewFolder* folderp : mFolders)
 	{
-		folders_t::iterator fit = iter++;
-		(*fit)->applyFunctorRecursively(functor);
+		folderp->applyFunctorRecursively(functor);
 	}
-	for (items_t::iterator iter = mItems.begin();
-		iter != mItems.end();)
+	for (LLFolderViewItem* itemp : mItems)
 	{
-		items_t::iterator iit = iter++;
-		functor.doItem((*iit));
+		functor.doItem(itemp);
 	}
 }
 
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index e944e3cd2fdb3abfc8a791645552e9f9d74185d3..61db2f2d94840ab502d6d2d12edfff2fc2ddacee 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -1175,7 +1175,7 @@ void LLView::drawChildren()
 		LLView* rootp = LLUI::getInstance()->getRootView();		
 		++sDepth;
 
-		for (child_list_reverse_iter_t child_iter = mChildList.rbegin(); child_iter != mChildList.rend();)  // ++child_iter)
+		for (child_list_reverse_iter_t child_iter = mChildList.rbegin(), child_end = mChildList.rend(); child_iter != child_end;)  // ++child_iter)
 		{
 			child_list_reverse_iter_t child = child_iter++;
 			LLView *viewp = *child;
@@ -2134,11 +2134,8 @@ LLView*	LLView::findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESna
 
 	if (snap_type == SNAP_SIBLINGS || snap_type == SNAP_PARENT_AND_SIBLINGS)
 	{
-		for ( child_list_const_iter_t child_it = mParentView->getChildList()->begin();
-			  child_it != mParentView->getChildList()->end(); ++child_it)
+		for (LLView* siblingp : *mParentView->getChildList())
 		{
-			LLView* siblingp = *child_it;
-
 			if (!canSnapTo(siblingp)) continue;
 
 			LLRect sibling_rect = siblingp->getSnapRect();
@@ -2363,11 +2360,8 @@ static bool get_last_child_rect(LLView* parent, LLRect *rect)
 {
 	if (!parent) return false;
 
-	LLView::child_list_t::const_iterator itor = 
-		parent->getChildList()->begin();
-	for (;itor != parent->getChildList()->end(); ++itor)
+	for (LLView* last_view : *parent->getChildList())
 	{
-		LLView *last_view = (*itor);
 		if (last_view->getFromXUI())
 		{
 			*rect = last_view->getRect();