diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index aba019356d8c72de99455b864fbadd23c25ba92b..63ffb80ff28dd98788ed80626a67cb8827b9bc6c 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -901,18 +901,6 @@ void LLOutfitsList::applyFilter(const std::string& new_filter_substring)
 		if (!new_filter_substring.empty())
 		{
 			applyFilterToTab(iter->first, tab, new_filter_substring);
-
-			if (tab->getVisible())
-			{
-				// Open tab if it has passed the filter.
-				tab->setDisplayChildren(true);
-			}
-			else
-			{
-				// Set force refresh flag to refresh not visible list
-				// when some changes occur in it.
-				list->setForceRefresh(true);
-			}
 		}
 		else
 		{
@@ -965,6 +953,18 @@ void LLOutfitsList::applyFilterToTab(
 		// Try restoring the tab selection.
 		restoreOutfitSelection(tab, category_id);
 	}
+
+	if (tab->getVisible())
+	{
+		// Open tab if it has passed the filter.
+		tab->setDisplayChildren(true);
+	}
+	else
+	{
+		// Set force refresh flag to refresh not visible list
+		// when some changes occur in it.
+		list->setForceRefresh(true);
+	}
 }
 
 bool LLOutfitsList::canTakeOffSelected()