diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index bf0fc2f6c0d4a29197258be3ff9a7bd2c81ea609..4f626cb5d2a2e1d6b5a4a801930371019f2dd56a 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -438,6 +438,9 @@ void LLIMFloaterContainer::addConversationListItem(std::string name, const LLUUI
 	LLFolderViewItem* widget = createConversationItemWidget(item);
 	mConversationsWidgets[floaterp] = widget;
 
+	// Add a new conversation widget to the root folder of a folder view.
+	mConversationsRoot->addItem(widget);
+
 	// Add it to the UI
 	widget->setVisible(TRUE);
 	mConversationsListPanel->addChild(widget);
@@ -460,7 +463,7 @@ void LLIMFloaterContainer::removeConversationListItem(LLFloater* floaterp, bool
 	if (widget_it != mConversationsWidgets.end())
 	{
 		LLFolderViewItem* widget = widget_it->second;
-		delete widget;
+		widget->destroyView();
 	}
 	
 	// Suppress the conversation items and widgets from their respective maps