diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index f61af716b624a10c52fb9a9ac3e70f17d4158b57..0ce8d4b7cdf892ca2442d910a98f275abc08919d 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -57,6 +57,7 @@
 #include "llvoicechannel.h"
 #include "lltransientfloatermgr.h"
 #include "llinventorymodel.h"
+#include "llrootview.h"
 
 
 
@@ -444,6 +445,16 @@ LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
 void LLIMFloater::getAllowedRect(LLRect& rect)
 {
 	rect = gViewerWindow->getWorldViewRectRaw();
+	static S32 right_padding = 0;
+	if (right_padding == 0)
+	{
+		LLPanel* side_bar_tabs =
+				gViewerWindow->getRootView()->getChild<LLPanel> (
+						"side_bar_tabs");
+		right_padding = side_bar_tabs->getRect().getWidth();
+		LLTransientFloaterMgr::getInstance()->addControlView(side_bar_tabs);
+	}
+	rect.mRight -= right_padding;
 }
 
 void LLIMFloater::setDocked(bool docked, bool pop_on_undock)