diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index a300e15edda3854378cf10147aa404885106f10d..8a52cf715fc311d741369355129d2e9e8e2040ae 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -317,9 +317,19 @@ void LLGestureComboList::refreshGestures()
 	
 	if (gestures)
 	{
-		S32 index = gestures->getSelectedValue().asInteger();
-		if(index > 0)
-			gesture = mGestures.at(index);
+		S32 sel_index = gestures->getFirstSelectedIndex();
+		if (sel_index != 0)
+		{
+			S32 index = gestures->getSelectedValue().asInteger();
+			if (index<0 || index >= (S32)mGestures.size())
+			{
+				llwarns << "out of range gesture access" << llendl;
+			}
+			else
+			{
+				gesture = mGestures.at(index);
+			}
+		}
 	}
 	
 	if(gesture && LLGestureMgr::instance().isGesturePlaying(gesture))
@@ -335,13 +345,13 @@ void LLGestureComboList::onCommitGesture()
 	LLCtrlListInterface* gestures = getListInterface();
 	if (gestures)
 	{
-		S32 index = gestures->getFirstSelectedIndex();
-		if (index == 0)
+		S32 sel_index = gestures->getFirstSelectedIndex();
+		if (sel_index == 0)
 		{
 			return;
 		}
 
-		index = gestures->getSelectedValue().asInteger();
+		S32 index = gestures->getSelectedValue().asInteger();
 
 		if (mViewAllItemIndex == index)
 		{
@@ -357,13 +367,20 @@ void LLGestureComboList::onCommitGesture()
 			return;
 		}
 
-		LLMultiGesture* gesture = mGestures.at(index);
-		if(gesture)
+		if (index<0 || index >= (S32)mGestures.size())
+		{
+			llwarns << "out of range gesture index" << llendl;
+		}
+		else
 		{
-			LLGestureMgr::instance().playGesture(gesture);
-			if(!gesture->mReplaceText.empty())
+			LLMultiGesture* gesture = mGestures.at(index);
+			if(gesture)
 			{
-				LLNearbyChatBar::sendChatFromViewer(gesture->mReplaceText, CHAT_TYPE_NORMAL, FALSE);
+				LLGestureMgr::instance().playGesture(gesture);
+				if(!gesture->mReplaceText.empty())
+				{
+					LLNearbyChatBar::sendChatFromViewer(gesture->mReplaceText, CHAT_TYPE_NORMAL, FALSE);
+				}
 			}
 		}
 	}
@@ -374,6 +391,13 @@ LLGestureComboList::~LLGestureComboList()
 	LLGestureMgr::instance().removeObserver(this);
 }
 
+LLCtrlListInterface* LLGestureComboList::getListInterface()
+{
+	LLCtrlListInterface *result = mList;
+	llassert((LLCtrlListInterface*)mList==result);
+	return mList;
+};
+
 LLNearbyChatBar::LLNearbyChatBar() 
 	: LLPanel()
 	, mChatBox(NULL)
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 83c174fd109ad345a453c8062ffb17793cdffe6e..0eaa60ce815f28013a2a789a56531a41e77b6a59 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -68,7 +68,7 @@ class LLGestureComboList
 
 	~LLGestureComboList();
 
-	LLCtrlListInterface* getListInterface()		{ return (LLCtrlListInterface*)mList; };
+	LLCtrlListInterface* getListInterface();
 	virtual void	showList();
 	virtual void	hideList();
 	virtual BOOL	handleKeyHere(KEY key, MASK mask);
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 7ef67d5912d22d514ef00e3e7ef280a78bffb043..7aadaed209549121aabfec287e6e565d4f4cbe86 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -1472,7 +1472,7 @@
 		Solde
 	</string>
 	<string name="Credits">
-		Remerciements
+		Crédits
 	</string>
 	<string name="Debits">
 		Débits
@@ -1787,7 +1787,7 @@
 		Solde
 	</string>
 	<string name="GroupMoneyCredits">
-		Remerciements
+		Crédits
 	</string>
 	<string name="GroupMoneyDebits">
 		Débits