diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 3f414248182d9d90f8b080b7250dea343ba6a103..29f4311ea48f7c9d0cb3e6b5f0f70eaa6caa6182 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -67,7 +67,7 @@ BOOL LLBottomtrayButton::handleHover(S32 x, S32 y, MASK mask)
 	S32 screenX, screenY;
 	localPointToScreen(x, y, &screenX, &screenY);
 	// pass hover to bottomtray
-	LLBottomTray::getInstance()->handleHover(screenX, screenY, mask);
+	LLBottomTray::getInstance()->onDraggableButtonHover(screenX, screenY);
 	return FALSE;
 }
 //virtual
@@ -76,7 +76,7 @@ BOOL LLBottomtrayButton::handleMouseUp(S32 x, S32 y, MASK mask)
 	S32 screenX, screenY;
 	localPointToScreen(x, y, &screenX, &screenY);
 	// pass mouse up to bottomtray
-	LLBottomTray::getInstance()->onDraggableButtonMouseUp(this,screenX, screenY, mask);
+	LLBottomTray::getInstance()->onDraggableButtonMouseUp(this, screenX, screenY);
 	LLButton::handleMouseUp(x, y, mask);
 	return FALSE;
 }
@@ -86,7 +86,7 @@ BOOL LLBottomtrayButton::handleMouseDown(S32 x, S32 y, MASK mask)
 	S32 screenX, screenY;
 	localPointToScreen(x, y, &screenX, &screenY);
 	// pass mouse up to bottomtray
-	LLBottomTray::getInstance()->onDraggableButtonMouseDown(this,screenX, screenY, mask);
+	LLBottomTray::getInstance()->onDraggableButtonMouseDown(this, screenX, screenY);
 	LLButton::handleMouseDown(x, y, mask);
 	return FALSE;
 }
@@ -561,7 +561,7 @@ BOOL LLBottomTray::postBuild()
 
 //Drag-n-drop
 
-void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y)
 {
 	if (ctrl == NULL) return;
 	LLView* parent_view = ctrl->getParent();
@@ -607,7 +607,7 @@ LLPanel* LLBottomTray::findChildPanelByLocalCoords(S32 x, S32 y)
 	return ctrl;
 }
 
-BOOL LLBottomTray::handleHover(S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonHover(S32 x, S32 y)
 {
 	// if mouse down on draggable item was done, check whether we should start DnD
 	if (mCheckForDrag)
@@ -634,8 +634,6 @@ BOOL LLBottomTray::handleHover(S32 x, S32 y, MASK mask)
 			gViewerWindow->getWindow()->setCursor(UI_CURSOR_NO);
 		}
 	}
-
-	return TRUE;
 }
 
 bool LLBottomTray::isCursorOverDraggableArea(S32 x, S32 y)
@@ -767,7 +765,7 @@ void LLBottomTray::loadButtonsOrder()
 	mToolbarStack->movePanel(mNearbyChatBar, NULL, true);
 }
 
-void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y)
 {
 	//if mouse up happened over area where drop is possible, change order of buttons
 	if (mLandingTab != NULL && mDraggedItem != NULL && mDragStarted)
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 14a29895f594939a7a54115d3662fc938a3ebaa1..1197c5a10a8db9446f3caf56d861cfa4fc3307d7 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -131,10 +131,12 @@ public:
 
 	/**
 	 * These three methods handle drag'n'drop, they may be called directly from child buttons.
+	 * handleHover and other virtual handle* couldn't be used here, because we should call LLPanel::handle*,
+	 * but x and y here are often outside of bottomtray.
 	 */
-	/*virtual*/ BOOL	handleHover(S32 x, S32 y, MASK mask);
-	void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y, MASK mask);
-	void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y, MASK mask);
+	void onDraggableButtonHover(S32 x, S32 y);
+	void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y);
+	void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y);
 
 
 private: