diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index a9513b759a88d7d1aa0f4ffaace04771d262ad39..5802d2adda6ade936b76ca91cc3506a3de988770 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -240,6 +240,20 @@ bool LLToolBar::addCommand(LLCommand * command)
 	return true;
 }
 
+bool LLToolBar::hasCommand(const std::string& command_name)
+{
+	bool has_command = false;
+	for (std::list<LLToolBarButton*>::iterator cmd = mButtons.begin(); cmd != mButtons.end(); cmd++)
+	{
+		if ((*cmd)->getName() == command_name)
+		{
+			has_command = true;
+			break;
+		}
+	}
+	return has_command;
+}
+
 BOOL LLToolBar::handleRightMouseDown(S32 x, S32 y, MASK mask)
 {
 	BOOL handle_it_here = !mReadOnly;
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index 5028c39fb83e1a53863c5a48c83fb372cb4bb4e7..00e6ed131a17a7f33b38a9575200bdfb4eb46e85 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -122,6 +122,7 @@ class LLToolBar
 	void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 
 	bool addCommand(LLCommand * command);
+	bool hasCommand(const std::string& command_name);
 
 protected:
 	friend class LLUICtrlFactory;
diff --git a/indra/llui/lltoolbarview.cpp b/indra/llui/lltoolbarview.cpp
index 0b0fcef52c77adb26f8fd86e58609a276bff8536..3b4960fdd57fa53ed1b1b59e2875057d5edeb1be 100644
--- a/indra/llui/lltoolbarview.cpp
+++ b/indra/llui/lltoolbarview.cpp
@@ -62,6 +62,24 @@ BOOL LLToolBarView::postBuild()
 	return TRUE;
 }
 
+bool LLToolBarView::hasCommand(const std::string& command_name)
+{
+	bool has_command = false;
+	if (mToolbarLeft && !has_command)
+	{
+		has_command = mToolbarLeft->hasCommand(command_name);
+	}
+	if (mToolbarRight && !has_command)
+	{
+		has_command = mToolbarRight->hasCommand(command_name);
+	}
+	if (mToolbarBottom && !has_command)
+	{
+		has_command = mToolbarBottom->hasCommand(command_name);
+	}
+	return has_command;
+}
+
 void LLToolBarView::draw()
 {
 	static bool debug_print = true;
diff --git a/indra/llui/lltoolbarview.h b/indra/llui/lltoolbarview.h
index 24735d69e957f53607eca9676305ce574854c7e9..65d339315b81fa5077adb7cf40444bbcc83fd3eb 100644
--- a/indra/llui/lltoolbarview.h
+++ b/indra/llui/lltoolbarview.h
@@ -45,6 +45,8 @@ class LLToolBarView : public LLUICtrl
 
 	virtual void draw();
 
+	bool hasCommand(const std::string& command_name);
+	
 	// valid children for LLToolBarView are stored in this registry
 	typedef LLDefaultChildRegistry child_registry_t;