diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 60a5204547d158b630a7723042de398a92b1a773..0fb37957893218f8e293db51baad6c08fad01c68 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -97,6 +97,7 @@ LLConversationViewSession::~LLConversationViewSession()
 	if(LLVoiceClient::instanceExists() && mVoiceClientObserver)
 	{
 		LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver);
+		delete mVoiceClientObserver;
 	}
 
 	mFlashTimer->unset();
@@ -203,7 +204,7 @@ BOOL LLConversationViewSession::postBuild()
 			mIsInActiveVoiceChannel = true;
 			if(LLVoiceClient::instanceExists())
 			{
-				LLNearbyVoiceClientStatusObserver* mVoiceClientObserver = new LLNearbyVoiceClientStatusObserver(this);
+				mVoiceClientObserver = new LLNearbyVoiceClientStatusObserver(this);
 				LLVoiceClient::getInstance()->addObserver(mVoiceClientObserver);
 			}
 			break;