diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index e2b5279aab60e7f4e4078ed79508cccef52f95fd..16e9034430f82a9a5f2aa4d5d7fc7b027b60f144 100644
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -181,14 +181,18 @@ LLFolderViewItem::~LLFolderViewItem()
 
 BOOL LLFolderViewItem::postBuild()
 {
-    LLFolderViewModelItem& vmi = *getViewModelItem();
-    // getDisplayName() is expensive (due to internal getLabelSuffix() and name building)
-    // it also sets search strings so it requires a filter reset
-    mLabel = vmi.getDisplayName();
-    setToolTip(vmi.getName());
+    LLFolderViewModelItem* vmi = getViewModelItem();
+    llassert(vmi); // not supposed to happen, if happens, find out why and fix
+    if (vmi)
+    {
+        // getDisplayName() is expensive (due to internal getLabelSuffix() and name building)
+        // it also sets search strings so it requires a filter reset
+        mLabel = vmi->getDisplayName();
+        setToolTip(vmi->getName());
 
-    // Dirty the filter flag of the model from the view (CHUI-849)
-    vmi.dirtyFilter();
+        // Dirty the filter flag of the model from the view (CHUI-849)
+        vmi->dirtyFilter();
+    }
 
     // Don't do full refresh on constructor if it is possible to avoid
     // it significantly slows down bulk view creation.
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 9ec4fb085b2717b5790871b3ed341c39bdb33946..9e043dbac0936fc8b7cd781a6a401cd7f3a4771b 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -90,6 +90,8 @@ LLConversationItem::~LLConversationItem()
 	{
 		mAvatarNameCacheConnection.disconnect();
 	}
+
+    clearChildren();
 }
 
 //virtual
@@ -254,6 +256,11 @@ LLConversationItemSession::LLConversationItemSession(const LLUUID& uuid, LLFolde
 	mConvType = CONV_SESSION_UNKNOWN;
 }
 
+LLConversationItemSession::~LLConversationItemSession()
+{
+    clearAndDeparentModels();
+}
+
 bool LLConversationItemSession::hasChildren() const
 {
 	return getChildrenCount() > 0;
diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h
index 7c6980a7e659f15bf536197e8283113eae798cba..07e60d7f62ceb1621542f8a167f8407b49afbca4 100644
--- a/indra/newview/llconversationmodel.h
+++ b/indra/newview/llconversationmodel.h
@@ -156,6 +156,7 @@ class LLConversationItemSession : public LLConversationItem
 public:
 	LLConversationItemSession(std::string display_name, const LLUUID& uuid, LLFolderViewModelInterface& root_view_model);
 	LLConversationItemSession(const LLUUID& uuid, LLFolderViewModelInterface& root_view_model);
+    ~LLConversationItemSession();
 	
 	/*virtual*/ bool hasChildren() const;
     LLPointer<LLUIImage> getIcon() const { return NULL; }