diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 581c210bd5cc11dc54c290932623c12cc654eb17..64226ac52b69662728684dde70e00f4ec02ab9d5 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -55,6 +55,7 @@
 #include "lltoastnotifypanel.h"
 #include "llviewerregion.h"
 #include "llworld.h"
+#include "lluiconstants.h"
 
 
 #include "llsidetray.h"//for blocked objects panel
@@ -664,8 +665,36 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
 		{
 			LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(
 					notification);
+			//we can't set follows in xml since it broke toasts behavior
 			notify_box->setFollowsLeft();
 			notify_box->setFollowsRight();
+			notify_box->setFollowsTop();
+
+			LLButton* accept_button = notify_box->getChild<LLButton> ("Accept",
+					TRUE);
+			if (accept_button != NULL)
+			{
+				accept_button->setFollowsNone();
+				accept_button->setOrigin(2*HPAD, accept_button->getRect().mBottom);
+			}
+
+			LLButton* decline_button = notify_box->getChild<LLButton> (
+					"Decline", TRUE);
+			if (accept_button != NULL && decline_button != NULL)
+			{
+				decline_button->setFollowsNone();
+				decline_button->setOrigin(4*HPAD
+						+ accept_button->getRect().getWidth(),
+						decline_button->getRect().mBottom);
+			}
+
+			LLTextEditor* text_editor = notify_box->getChild<LLTextEditor>("text_editor_box", TRUE);
+			S32 text_heigth = 0;
+			if(text_editor != NULL)
+			{
+				text_heigth = text_editor->getTextBoundingRect().getHeight();
+			}
+
 			//Prepare the rect for the view
 			LLRect target_rect = mEditor->getDocumentView()->getRect();
 			// squeeze down the widget by subtracting padding off left and right
@@ -675,6 +704,15 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
 					notify_box->getRect().getHeight());
 			notify_box->setOrigin(target_rect.mLeft, notify_box->getRect().mBottom);
 
+			if (text_editor != NULL)
+			{
+				S32 text_heigth_delta =
+						text_editor->getTextBoundingRect().getHeight()
+								- text_heigth;
+				notify_box->reshape(target_rect.getWidth(),
+								notify_box->getRect().getHeight() + text_heigth_delta);
+			}
+
 			LLInlineViewSegment::Params params;
 			params.view = notify_box;
 			params.left_pad = mLeftWidgetPad;
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index 9aaa660574c320e836edef1cc8a50e03d4c83818..d2e54731573870fe48dfb4261048a507f01aadb1 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -12,7 +12,7 @@
  can_minimize="true"
  can_close="true"
  visible="false"
- width="440"
+ width="360"
  can_resize="true"
  min_width="250"
  min_height="190">
@@ -20,7 +20,7 @@
    animate="false" 
   follows="all"
   height="320"
-  width="440"
+  width="360"
   layout="topleft"
   orientation="horizontal"
   name="im_panels"
@@ -38,7 +38,7 @@
        left="0"
        top="0"
        height="200"
-	     width="325"
+	     width="245"
        user_resize="true">
         <button
           height="20"
@@ -65,7 +65,7 @@
          parse_highlights="true"
          allow_html="true"
         left="1"
-         width="320">
+         width="240">
         </chat_history>
         <line_editor
          bottom="0"
@@ -75,7 +75,7 @@
          label="To"
          layout="bottomleft"
          name="chat_editor"
-         width="320">
+         width="240">
         </line_editor>
     </layout_panel>
   </layout_stack>