diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index 093e213be35038cb4850d7723a0c1d1112d60851..dd5eb47a6315ed7a74b081adb912caacd82ef089 100644
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -419,21 +419,15 @@ class LLFolderViewModel : public LLFolderViewModelCommon
 		mFilter(filter)
 	{}
 
-	virtual ~LLFolderViewModel() 
-	{
-		delete mSorter;
-		mSorter = NULL;
-		delete mFilter;
-		mFilter = NULL;
-	}
+	virtual ~LLFolderViewModel() {}
 
 	virtual SortType& getSorter()					 { return *mSorter; }
 	virtual const SortType& getSorter() const 		 { return *mSorter; }
-	virtual void setSorter(const SortType& sorter) 	 { mSorter = new SortType(sorter); requestSortAll(); }
+	virtual void setSorter(const SortType& sorter) 	 { mSorter.reset(new SortType(sorter)); requestSortAll(); }
 
 	virtual FilterType& getFilter() 				 { return *mFilter; }
 	virtual const FilterType& getFilter() const		 { return *mFilter; }
-	virtual void setFilter(const FilterType& filter) { mFilter = new FilterType(filter); }
+	virtual void setFilter(const FilterType& filter) { mFilter.reset(new FilterType(filter)); }
 
 	// By default, we assume the content is available. If a network fetch mechanism is implemented for the model,
 	// this method needs to be overloaded and return the relevant fetch status.
@@ -471,8 +465,8 @@ class LLFolderViewModel : public LLFolderViewModelCommon
 	}
 
 protected:
-	SortType*		mSorter;
-	FilterType*		mFilter;
+	std::unique_ptr<SortType>		mSorter;
+	std::unique_ptr<FilterType>		mFilter;
 };
 
 #endif // LLFOLDERVIEWMODEL_H