diff --git a/indra/llui/llfolderviewmodel.cpp b/indra/llui/llfolderviewmodel.cpp
index 3b45fb53a2183ebfa99ea982aeae816e929dbe8e..58a1ef646a3faa364c40e33ac9a12c1e3061b501 100644
--- a/indra/llui/llfolderviewmodel.cpp
+++ b/indra/llui/llfolderviewmodel.cpp
@@ -29,6 +29,11 @@
 #include "llfolderviewmodel.h"
 #include "lltrans.h"
 
+LLFolderViewModelItemCommon::~LLFolderViewModelItemCommon()
+{
+    clearChildren();
+}
+
 bool LLFolderViewModelCommon::needsSort(LLFolderViewModelItem* item)
 {
 	return item->getSortVersion() < mTargetSortVersion;
diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index f71a88c56e84d1e42e3131258e9a48dcb2db67f5..903049b9af1aac0b0a1fba9a6606f6b6c979b160 100644
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -248,6 +248,8 @@ class LLFolderViewModelItemCommon : public LLFolderViewModelItem
 		mChildren.clear();
 	}
 
+    virtual ~LLFolderViewModelItemCommon();
+
 	void requestSort() { mSortVersion = -1; }
 	S32 getSortVersion() { return mSortVersion; }
 	void setSortVersion(S32 version) { mSortVersion = version;}
@@ -399,6 +401,8 @@ class LLFolderViewModelCommon : public LLFolderViewModelInterface
 		mFolderView(NULL)
 	{}
 
+    virtual ~LLFolderViewModelCommon() {}
+
 	virtual void requestSortAll()
 	{
 		// sort everything