diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index b3b2b9ee5d55e658f4360c743393e2165117122a..0c9c6eaebe9b54192726f7d5408376ac01caa423 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -122,7 +122,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
 	mTextTime(NULL),
 	mSGBandwidth(NULL),
 	mSGPacketLoss(NULL),
-	mBtnBuyCurrency(NULL),
 	mBtnVolume(NULL),
 	mBalance(0),
 	mHealth(100),
@@ -153,8 +152,10 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
 	mTextHealth = getChild<LLTextBox>("HealthText" );
 	mTextTime = getChild<LLTextBox>("TimeText" );
 	
-	mBtnBuyCurrency = getChild<LLButton>( "buycurrency" );
-	mBtnBuyCurrency->setClickedCallback( onClickBuyCurrency, this );
+	getChild<LLUICtrl>("buycurrency")->setCommitCallback( 
+		boost::bind(&LLStatusBar::onClickBuyCurrency, this));
+	getChild<LLUICtrl>("buyL")->setCommitCallback(
+		boost::bind(&LLStatusBar::onClickBuyCurrency, this));
 
 	mBtnVolume = getChild<LLButton>( "volume_btn" );
 	mBtnVolume->setClickedCallback( onClickVolume, this );
@@ -362,7 +363,8 @@ void LLStatusBar::refresh()
 void LLStatusBar::setVisibleForMouselook(bool visible)
 {
 	mTextTime->setVisible(visible);
-	mBtnBuyCurrency->setVisible(visible);
+	getChild<LLUICtrl>("buycurrency")->setVisible(visible);
+	getChild<LLUICtrl>("buyL")->setVisible(visible);
 	mSGBandwidth->setVisible(visible);
 	mSGPacketLoss->setVisible(visible);
 	setBackgroundVisible(visible);
@@ -382,17 +384,18 @@ void LLStatusBar::setBalance(S32 balance)
 {
 	std::string money_str = LLResMgr::getInstance()->getMonetaryString( balance );
 
+	LLButton* btn_buy_currency = getChild<LLButton>("buycurrency");
 	LLStringUtil::format_map_t string_args;
 	string_args["[AMT]"] = llformat("%s", money_str.c_str());
 	std::string labe_str = getString("buycurrencylabel", string_args);
-	mBtnBuyCurrency->setLabel(labe_str);
+	btn_buy_currency->setLabel(labe_str);
 
 	// Resize the balance button so that the label fits it, and the button expands to the left.
 	// *TODO: LLButton should have an option where to expand.
 	{
-		S32 saved_right = mBtnBuyCurrency->getRect().mRight;
-		mBtnBuyCurrency->autoResize();
-		mBtnBuyCurrency->translate(saved_right - mBtnBuyCurrency->getRect().mRight, 0);
+		S32 saved_right = btn_buy_currency->getRect().mRight;
+		btn_buy_currency->autoResize();
+		btn_buy_currency->translate(saved_right - btn_buy_currency->getRect().mRight, 0);
 	}
 
 	if (mBalance && (fabs((F32)(mBalance - balance)) > gSavedSettings.getF32("UISndMoneyChangeThreshold")))
@@ -497,7 +500,7 @@ S32 LLStatusBar::getSquareMetersLeft() const
 	return mSquareMetersCredit - mSquareMetersCommitted;
 }
 
-static void onClickBuyCurrency(void* data)
+void LLStatusBar::onClickBuyCurrency()
 {
 	LLFloaterBuyCurrency::buyCurrency();
 }
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index 0e98da0fe45ba52e304bbfd2eba3b8e4662db8d5..21a98dd7531e0b07b9c87ad5703e04e3dd3849f1 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -91,6 +91,7 @@ class LLStatusBar
 	// simple method to setup the part that holds the date
 	void setupDate();
 
+	void onClickBuyCurrency();
 	void onVolumeChanged(const LLSD& newvalue);
 
 	static void onMouseEnterVolume(LLUICtrl* ctrl);
@@ -103,7 +104,6 @@ class LLStatusBar
 	LLStatGraph *mSGBandwidth;
 	LLStatGraph *mSGPacketLoss;
 
-	LLButton	*mBtnBuyCurrency;
 	LLButton	*mBtnVolume;
 
 	S32				mBalance;