diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 47bf69d56c86e524aad2c57b3a2090dbf5f921ae..22c3779050aff5f0549784cf9090bb28a7c1c5d9 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -126,13 +126,15 @@ class LLSideTrayTab: public LLPanel
 	:	public LLInitParam::Block<Params, LLPanel::Params>
 	{
 		// image name
-		Optional<std::string>		image_path;
+		Optional<std::string>		image;
+		Optional<std::string>		image_selected;
 		Optional<std::string>		tab_title;
 		Optional<std::string>		description;
 		Params()
-		:	image_path("image"),
-		tab_title("tab_title","no title"),
-		description("description","no description")
+		:	image("image"),
+			image_selected("image_selected"),
+			tab_title("tab_title","no title"),
+			description("description","no description")
 		{};
 	};
 protected:
@@ -160,18 +162,21 @@ class LLSideTrayTab: public LLPanel
 	
 private:
 	std::string mTabTitle;
-	std::string mImagePath;
+	std::string mImage;
+	std::string mImageSelected;
 	std::string	mDescription;
 	
 	LLView*	mMainPanel;
 };
 
-LLSideTrayTab::LLSideTrayTab(const Params& params):mMainPanel(0)
+LLSideTrayTab::LLSideTrayTab(const Params& p)
+:	LLPanel(),
+	mTabTitle(p.tab_title),
+	mImage(p.image),
+	mImageSelected(p.image_selected),
+	mDescription(p.description),
+	mMainPanel(NULL)
 {
-	mImagePath = params.image_path;
-	mTabTitle = params.tab_title;
-	mDescription = params.description;
-
 	// Necessary for focus movement among child controls
 	setFocusRoot(TRUE);
 }
@@ -322,35 +327,6 @@ BOOL LLSideTray::postBuild()
 	setMouseOpaque(false);
 	return true;
 }
-    
-/**
- * add new panel to tab with tab_name name
- * @param tab_name - name of sidebar tab to add new panel
- * @param panel - pointer to panel 
- */
-bool        LLSideTray::addPanel        ( const std::string& tab_name
-										,LLPanel* panel )
-{
-	return false;
-}
-/**
- * Add new tab to side bar
- * @param tab_name - name of the new tab
- * @param image - image for new sidebar button
- * @param title -  title for new tab
- */
-bool        LLSideTray::addTab          ( const std::string& tab_name
-										,const std::string& image
-										,const std::string& title)
-{
-	LLSideTrayTab::Params params;
-	params.image_path = image;
-	params.tab_title = title;
-	LLSideTrayTab* tab = LLUICtrlFactory::create<LLSideTrayTab> (params);
-	addChild(tab,1);
-	return true;
-}
-
 
 LLSideTrayTab* LLSideTray::getTab(const std::string& name)
 {
@@ -358,7 +334,6 @@ LLSideTrayTab* LLSideTray::getTab(const std::string& name)
 }
 
 
-
 void LLSideTray::toggleTabButton	(LLSideTrayTab* tab)
 {
 	if(tab == NULL)
@@ -460,25 +435,30 @@ bool LLSideTray::addChild(LLView* view, S32 tab_group)
 
 void	LLSideTray::createButtons	()
 {
-	//create show/hide button
-	mCollapseButton = createButton(EXPANDED_NAME,"",boost::bind(&LLSideTray::onToggleCollapse, this));
-
 	//create buttons for tabs
 	child_vector_const_iter_t child_it = mTabs.begin();
-	++child_it;
-
 	for ( ; child_it != mTabs.end(); ++child_it)
 	{
 		LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
 		if(sidebar_tab == NULL)
 			continue;
 
-		string name = sidebar_tab->getName();
+		std::string name = sidebar_tab->getName();
 		
-		LLButton* button = createButton("",sidebar_tab->mImagePath,boost::bind(&LLSideTray::onTabButtonClick, this, sidebar_tab->getName()));
-		mTabButtons[sidebar_tab->getName()] = button;
+		// The "home" button will open/close the whole panel, this will need to
+		// change if the home screen becomes its own tab.
+		if (name == "sidebar_home")
+		{
+			mCollapseButton = createButton("",sidebar_tab->mImage,
+				boost::bind(&LLSideTray::onToggleCollapse, this));
+		}
+		else
+		{
+			LLButton* button = createButton("",sidebar_tab->mImage,
+				boost::bind(&LLSideTray::onTabButtonClick, this, name));
+			mTabButtons[name] = button;
+		}
 	}
-	
 }
 
 void		LLSideTray::onTabButtonClick(string name)
@@ -581,25 +561,33 @@ void LLSideTray::arrange			()
 	}
 }
 
-void LLSideTray::collapseSideBar	()
+void LLSideTray::collapseSideBar()
 {
 	mCollapsed = true;
-	mCollapseButton->setLabel(COLLAPSED_NAME);
+	LLSideTrayTab* home_tab = getTab("sidebar_home");
+	if (home_tab)
+	{
+		mCollapseButton->setImageOverlay( home_tab->mImage );
+	}
 	mActiveTab->setVisible(FALSE);
 	reflectCollapseChange();
 	setFocus( FALSE );
 
 }
-void LLSideTray::expandSideBar	()
+
+void LLSideTray::expandSideBar()
 {
 	mCollapsed = false;
-	mCollapseButton->setLabel(EXPANDED_NAME);
+	LLSideTrayTab* home_tab = getTab("sidebar_home");
+	if (home_tab)
+	{
+		mCollapseButton->setImageOverlay( home_tab->mImageSelected );
+	}
 	LLSD key;//empty
 	mActiveTab->onOpen(key);
 	mActiveTab->setVisible(TRUE);
 
 	reflectCollapseChange();
-
 }
 
 void LLSideTray::highlightFocused()
diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h
index ebebb7f6bf2d0bba4dab2e92931f0cb6fd614eeb..845eb86bc13ce6f7b80f81f05cf19774522be0e5 100644
--- a/indra/newview/llsidetray.h
+++ b/indra/newview/llsidetray.h
@@ -89,23 +89,6 @@ class LLSideTray : public LLPanel, private LLDestroyClass<LLSideTray>
      */
 	bool		selectTabByIndex(size_t index);
 
-    /**
-     * add new panel to tab with tab_name name
-     * @param tab_name - name of sidebar tab to add new panel
-     * @param panel - pointer to panel 
-     */
-    bool        addPanel        ( const std::string& tab_name
-                                 ,LLPanel* panel );
-    /**
-     * Add new tab to side bar
-     * @param tab_name - name of the new tab
-     * @param image - image for new sidebar button
-     * @param title -  title for new tab
-     */
-    bool        addTab          ( const std::string& tab_name
-                                 ,const std::string& image
-                                 ,const std::string& title);
-
 	/**
 	 * Activate tab with "panel_name" panel
 	 * if no such tab - return NULL, otherwise a pointer to the panel
diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml
index 395b574425fec74cd077ad51c620ba96f7d2931f..6abcbc40d2d3c0376a428af4bb5fb5bfe8d65e4c 100644
--- a/indra/newview/skins/default/xui/en/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/en/panel_side_tray.xml
@@ -18,6 +18,7 @@
     tab_title="Home"
     description="Home."
     image="TabIcon_Open_Off"
+	image_selected="TabIcon_Close_Off"
     mouse_opaque="false"
     background_visible="true"
   >