diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index b93dfaf0616c5db89e7e0d54e76994c3041900a7..d40a7234e27bbab47455585ddf4fdda18a101021 100644
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -181,24 +181,26 @@ bool LLFolderViewModelItemInventory::filterChildItem( LLFolderViewModelItem* ite
 	S32 filter_generation = filter.getCurrentGeneration();
 
 	bool continue_filtering = true;
-	if (item->getLastFilterGeneration() < filter_generation)
+	if (item)
 	{
-		// Recursive application of the filter for child items (CHUI-849)
-		continue_filtering = item->filter( filter );
-	}
+		if (item->getLastFilterGeneration() < filter_generation)
+		{
+			// Recursive application of the filter for child items (CHUI-849)
+			continue_filtering = item->filter(filter);
+		}
 
-	// Update latest generation to pass filter in parent and propagate up to root
-	if (item->passedFilter())
-	{
-		LLFolderViewModelItemInventory* view_model = this;
-		
-		while(view_model && view_model->mMostFilteredDescendantGeneration < filter_generation)
+		// Update latest generation to pass filter in parent and propagate up to root
+		if (item->passedFilter())
 		{
-			view_model->mMostFilteredDescendantGeneration = filter_generation;
-			view_model = static_cast<LLFolderViewModelItemInventory*>(view_model->mParent);
+			LLFolderViewModelItemInventory* view_model = this;
+
+			while (view_model && view_model->mMostFilteredDescendantGeneration < filter_generation)
+			{
+				view_model->mMostFilteredDescendantGeneration = filter_generation;
+				view_model = static_cast<LLFolderViewModelItemInventory*>(view_model->mParent);
+			}
 		}
 	}
-
 	return continue_filtering;
 }