diff --git a/data/gui/chat_control.ui b/data/gui/chat_control.ui
index e1ea0892758a007899a5945369ab78cf161f8b2f..e5b8b1e40b7e106f83b0e18ca8a7e1ee11b4ae76 100644
--- a/data/gui/chat_control.ui
+++ b/data/gui/chat_control.ui
@@ -12,223 +12,279 @@
         <property name="orientation">vertical</property>
         <property name="spacing">1</property>
         <child>
-          <object class="GtkVBox" id="vbox2">
+          <object class="GtkHPaned" id="hpaned1">
             <property name="visible">True</property>
-            <property name="orientation">vertical</property>
+            <property name="can_focus">True</property>
             <child>
-              <object class="GtkAlignment" id="alignment">
+              <object class="GtkVBox" id="vbox2">
                 <property name="visible">True</property>
-                <property name="left_padding">3</property>
-                <property name="right_padding">3</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkEventBox" id="banner_eventbox">
+                  <object class="GtkAlignment" id="alignment">
                     <property name="visible">True</property>
+                    <property name="left_padding">3</property>
+                    <property name="right_padding">3</property>
                     <child>
-                      <object class="GtkHBox" id="hbox3004">
+                      <object class="GtkEventBox" id="banner_eventbox">
                         <property name="visible">True</property>
                         <child>
-                          <object class="GtkImage" id="banner_status_image">
-                            <property name="visible">True</property>
-                            <property name="ypad">5</property>
-                            <property name="stock">gtk-missing-image</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="padding">5</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkVBox" id="banner_vbox">
+                          <object class="GtkHBox" id="hbox3004">
                             <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="border_width">5</property>
-                            <property name="orientation">vertical</property>
                             <child>
-                              <object class="GtkLabel" id="banner_name_label">
+                              <object class="GtkImage" id="banner_status_image">
                                 <property name="visible">True</property>
-                                <property name="xalign">0</property>
-                                <property name="label">&lt;span weight="heavy" size="large"&gt;Contact name&lt;/span&gt;</property>
-                                <property name="use_markup">True</property>
+                                <property name="ypad">5</property>
+                                <property name="stock">gtk-missing-image</property>
                               </object>
                               <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="padding">5</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="banner_label">
+                              <object class="GtkVBox" id="banner_vbox">
                                 <property name="visible">True</property>
-                                <property name="xalign">0</property>
-                                <property name="label">label</property>
-                                <property name="use_markup">True</property>
-                                <property name="selectable">True</property>
-                                <signal name="populate_popup" handler="on_banner_label_populate_popup"/>
-                              </object>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkHBox" id="hbox2">
-                            <property name="visible">True</property>
-                            <property name="spacing">4</property>
-                            <child>
-                              <object class="GtkImage" id="mood_image">
-                                <property name="no_show_all">True</property>
-                                <property name="stock">None</property>
-                                <property name="icon-size">1</property>
-                              </object>
-                              <packing>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="activity_image">
-                                <property name="no_show_all">True</property>
-                                <property name="stock">None</property>
-                                <property name="icon-size">1</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="border_width">5</property>
+                                <property name="orientation">vertical</property>
+                                <child>
+                                  <object class="GtkLabel" id="banner_name_label">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">&lt;span weight="heavy" size="large"&gt;Contact name&lt;/span&gt;</property>
+                                    <property name="use_markup">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="banner_label">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label">label</property>
+                                    <property name="use_markup">True</property>
+                                    <property name="selectable">True</property>
+                                    <signal name="populate_popup" handler="on_banner_label_populate_popup"/>
+                                  </object>
+                                  <packing>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
                               </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" id="tune_image">
-                                <property name="no_show_all">True</property>
-                                <property name="stock">None</property>
-                                <property name="icon-size">1</property>
-                              </object>
-                              <packing>
-                                <property name="position">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEventBox" id="location_eventbox">
+                              <object class="GtkHBox" id="hbox2">
                                 <property name="visible">True</property>
-                                <property name="visible_window">False</property>
+                                <property name="spacing">4</property>
+                                <child>
+                                  <object class="GtkImage" id="mood_image">
+                                    <property name="no_show_all">True</property>
+                                    <property name="stock">None</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
                                 <child>
-                                  <object class="GtkImage" id="location_image">
+                                  <object class="GtkImage" id="activity_image">
                                     <property name="no_show_all">True</property>
                                     <property name="stock">None</property>
                                     <property name="icon-size">1</property>
                                   </object>
+                                  <packing>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="tune_image">
+                                    <property name="no_show_all">True</property>
+                                    <property name="stock">None</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkEventBox" id="location_eventbox">
+                                    <property name="visible">True</property>
+                                    <property name="visible_window">False</property>
+                                    <child>
+                                      <object class="GtkImage" id="location_image">
+                                        <property name="no_show_all">True</property>
+                                        <property name="stock">None</property>
+                                        <property name="icon-size">1</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="audio_banner_image">
+                                    <property name="visible">True</property>
+                                    <property name="stock">None</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">4</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="video_banner_image">
+                                    <property name="visible">True</property>
+                                    <property name="stock">None</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">5</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkAlignment" id="alignment3">
+                                    <property name="width_request">11</property>
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">6</property>
+                                  </packing>
                                 </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="position">3</property>
+                                <property name="position">2</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" id="audio_banner_image">
+                              <object class="GtkEventBox" id="avatar_eventbox">
                                 <property name="visible">True</property>
-                                <property name="stock">None</property>
-                                <property name="icon-size">1</property>
+                                <property name="visible_window">False</property>
+                                <child>
+                                  <object class="GtkImage" id="avatar_image">
+                                    <property name="visible">True</property>
+                                    <property name="stock">None</property>
+                                  </object>
+                                </child>
                               </object>
                               <packing>
-                                <property name="position">4</property>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">3</property>
                               </packing>
                             </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox106">
+                    <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="conversation_scrolledwindow">
+                        <property name="height_request">60</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">3</property>
+                        <property name="hscrollbar_policy">automatic</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <child>
+                          <object class="GtkButton" id="authentication_button">
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="no_show_all">True</property>
+                            <property name="relief">none</property>
+                            <property name="focus_on_click">False</property>
                             <child>
-                              <object class="GtkImage" id="video_banner_image">
-                                <property name="visible">True</property>
-                                <property name="stock">None</property>
+                              <object class="GtkImage" id="lock_image">
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="stock">gtk-dialog-authentication</property>
                                 <property name="icon-size">1</property>
                               </object>
-                              <packing>
-                                <property name="position">5</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkAlignment" id="alignment3">
-                                <property name="width_request">11</property>
-                                <property name="visible">True</property>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="position">6</property>
-                              </packing>
                             </child>
                           </object>
                           <packing>
                             <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkEventBox" id="avatar_eventbox">
+                          <object class="GtkScrolledWindow" id="message_scrolledwindow">
                             <property name="visible">True</property>
-                            <property name="visible_window">False</property>
+                            <property name="can_focus">True</property>
+                            <property name="border_width">3</property>
+                            <property name="hscrollbar_policy">never</property>
+                            <property name="vscrollbar_policy">never</property>
+                            <property name="shadow_type">in</property>
                             <child>
-                              <object class="GtkImage" id="avatar_image">
-                                <property name="visible">True</property>
-                                <property name="stock">None</property>
-                              </object>
+                              <placeholder/>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">3</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkVBox" id="vbox106">
-                <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <child>
-                  <object class="GtkScrolledWindow" id="conversation_scrolledwindow">
-                    <property name="height_request">60</property>
-                    <property name="can_focus">True</property>
-                    <property name="border_width">3</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <placeholder/>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="position">0</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkHBox" id="hbox">
+                  <object class="GtkHBox" id="actions_hbox">
                     <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
-                      <object class="GtkButton" id="authentication_button">
+                      <object class="GtkButton" id="emoticons_button">
+                        <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="no_show_all">True</property>
                         <property name="relief">none</property>
                         <property name="focus_on_click">False</property>
                         <child>
-                          <object class="GtkImage" id="lock_image">
+                          <object class="GtkImage" id="emoticons_button_image">
+                            <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="stock">gtk-dialog-authentication</property>
+                            <property name="stock">gtk-missing-image</property>
                             <property name="icon-size">1</property>
                           </object>
                         </child>
@@ -239,430 +295,430 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkScrolledWindow" id="message_scrolledwindow">
+                      <object class="GtkButton" id="formattings_button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="border_width">3</property>
-                        <property name="hscrollbar_policy">never</property>
-                        <property name="vscrollbar_policy">never</property>
-                        <property name="shadow_type">in</property>
+                        <property name="receives_default">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="relief">none</property>
+                        <property name="focus_on_click">False</property>
                         <child>
-                          <placeholder/>
+                          <object class="GtkImage" id="image10">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-bold</property>
+                            <property name="icon-size">1</property>
+                          </object>
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkHBox" id="actions_hbox">
-                <property name="visible">True</property>
-                <child>
-                  <object class="GtkButton" id="emoticons_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Show a list of emoticons (Alt+M)</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="emoticons_button_image">
+                      <object class="GtkVSeparator" id="vseparator1">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-missing-image</property>
-                        <property name="icon-size">1</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="formattings_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Show a list of formattings</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
-                    <child>
-                      <object class="GtkImage" id="image10">
-                        <property name="visible">True</property>
-                        <property name="stock">gtk-bold</property>
-                        <property name="icon-size">1</property>
+                        <property name="orientation">vertical</property>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">2</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVSeparator" id="vseparator1">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="orientation">vertical</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="add_to_roster_button">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="no_show_all">True</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Add this contact to roster (Ctrl+D)</property>
-                    <property name="relief">none</property>
                     <child>
-                      <object class="GtkImage" id="image9">
-                        <property name="visible">True</property>
+                      <object class="GtkButton" id="add_to_roster_button">
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-add</property>
-                        <property name="icon-size">1</property>
+                        <property name="no_show_all">True</property>
+                        <property name="relief">none</property>
+                        <child>
+                          <object class="GtkImage" id="image9">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="stock">gtk-add</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">3</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="send_file_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="image3">
+                      <object class="GtkButton" id="send_file_button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="icon-size">1</property>
+                        <property name="relief">none</property>
+                        <property name="focus_on_click">False</property>
+                        <child>
+                          <object class="GtkImage" id="image3">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">4</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">4</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="audio_togglebutton">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Toggle audio session</property>
-                    <property name="relief">none</property>
                     <child>
-                      <object class="GtkImage" id="audio_image">
-                        <property name="visible">True</property>
-                        <property name="stock">gtk-missing-image</property>
-                        <property name="icon-size">1</property>
+                      <object class="GtkToggleButton" id="audio_togglebutton">
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="relief">none</property>
+                        <child>
+                          <object class="GtkImage" id="audio_image">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-missing-image</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">5</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">5</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="video_togglebutton">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Toggle video session</property>
-                    <property name="relief">none</property>
                     <child>
-                      <object class="GtkImage" id="video_image">
-                        <property name="visible">True</property>
-                        <property name="stock">gtk-missing-image</property>
-                        <property name="icon-size">1</property>
+                      <object class="GtkToggleButton" id="video_togglebutton">
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="relief">none</property>
+                        <child>
+                          <object class="GtkImage" id="video_image">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-missing-image</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">6</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">6</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="convert_to_gc_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Invite contacts to the conversation (Ctrl+G)</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="convert_to_gc_button_image">
+                      <object class="GtkButton" id="convert_to_gc_button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-missing-image</property>
-                        <property name="icon-size">1</property>
+                        <property name="relief">none</property>
+                        <property name="focus_on_click">False</property>
+                        <child>
+                          <object class="GtkImage" id="convert_to_gc_button_image">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="stock">gtk-missing-image</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">7</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">7</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="contact_information_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Show the contact's profile (Ctrl+I)</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="image2">
+                      <object class="GtkButton" id="contact_information_button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-info</property>
-                        <property name="icon-size">1</property>
+                        <property name="relief">none</property>
+                        <property name="focus_on_click">False</property>
+                        <child>
+                          <object class="GtkImage" id="image2">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="stock">gtk-info</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">8</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">8</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="history_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Browse the chat history (Ctrl+H)</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="image5">
+                      <object class="GtkButton" id="history_button">
                         <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-justify-fill</property>
-                        <property name="icon-size">1</property>
+                        <property name="relief">none</property>
+                        <property name="focus_on_click">False</property>
+                        <child>
+                          <object class="GtkImage" id="image5">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="stock">gtk-justify-fill</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">9</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">9</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVSeparator" id="vseparator3">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="orientation">vertical</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">10</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="message_window_actions_button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text" translatable="yes">Show a menu of advanced functions (Alt+D)</property>
-                    <property name="relief">none</property>
-                    <property name="focus_on_click">False</property>
                     <child>
-                      <object class="GtkImage" id="image1">
+                      <object class="GtkVSeparator" id="vseparator3">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="stock">gtk-execute</property>
-                        <property name="icon-size">1</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">11</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkHBox" id="audio_buttons_hbox">
-                    <property name="no_show_all">True</property>
-                    <child>
-                      <object class="GtkVSeparator" id="vseparator2">
-                        <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="position">0</property>
+                        <property name="position">10</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkVolumeButton" id="sound_hscale">
+                      <object class="GtkButton" id="message_window_actions_button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
-                        <property name="use_action_appearance">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="relief">none</property>
                         <property name="focus_on_click">False</property>
-                        <property name="orientation">vertical</property>
-                        <property name="size">menu</property>
-                        <property name="adjustment">adjustment1</property>
-                        <property name="icons">audio-volume-muted
-audio-volume-high
-audio-volume-low
-audio-volume-medium</property>
+                        <child>
+                          <object class="GtkImage" id="image1">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="stock">gtk-execute</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="position">1</property>
+                        <property name="position">11</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkVolumeButton" id="mic_hscale">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_action_appearance">True</property>
-                        <property name="relief">none</property>
-                        <property name="focus_on_click">False</property>
-                        <property name="yalign">0.4699999988079071</property>
-                        <property name="orientation">vertical</property>
-                        <property name="size">menu</property>
-                        <property name="adjustment">adjustment2</property>
-                        <property name="icons">audio-mic-volume-muted
+                      <object class="GtkHBox" id="audio_buttons_hbox">
+                        <property name="no_show_all">True</property>
+                        <child>
+                          <object class="GtkVSeparator" id="vseparator2">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVolumeButton" id="sound_hscale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">True</property>
+                            <property name="relief">none</property>
+                            <property name="focus_on_click">False</property>
+                            <property name="orientation">vertical</property>
+                            <property name="size">menu</property>
+                            <property name="adjustment">adjustment1</property>
+                            <property name="icons">audio-volume-muted
+audio-volume-high
+audio-volume-low
+audio-volume-medium</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVolumeButton" id="mic_hscale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">True</property>
+                            <property name="relief">none</property>
+                            <property name="focus_on_click">False</property>
+                            <property name="yalign">0.4699999988079071</property>
+                            <property name="orientation">vertical</property>
+                            <property name="size">menu</property>
+                            <property name="adjustment">adjustment2</property>
+                            <property name="icons">audio-mic-volume-muted
 audio-mic-volume-high
 audio-mic-volume-medium
 audio-mic-volume-low</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="dtmf_button">
+                            <property name="label" translatable="yes">#</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="relief">none</property>
+                          </object>
+                          <packing>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
-                        <property name="position">2</property>
+                        <property name="position">12</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkButton" id="dtmf_button">
-                        <property name="label" translatable="yes">#</property>
+                      <object class="GtkComboBox" id="label_selector">
+                        <property name="visible">True</property>
+                      </object>
+                      <packing>
+                        <property name="position">13</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkAlignment" id="alignment1">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">14</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="send_button">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
-                        <property name="relief">none</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment102">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox3010">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image1339">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-jump-to</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label373">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes" comments="Make sure the character after &quot;_&quot; is not M/m (conflicts with Alt+M that is supposed to show the Emoticon Selector)">_Send</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
                       </object>
                       <packing>
-                        <property name="position">3</property>
+                        <property name="expand">False</property>
+                        <property name="position">15</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="position">12</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBox" id="label_selector">
-                    <property name="visible">True</property>
-                  </object>
-                  <packing>
-                    <property name="position">13</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="resize">False</property>
+                <property name="shrink">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="video_hbox">
+                <property name="no_show_all">True</property>
+                <property name="spacing">6</property>
                 <child>
-                  <object class="GtkAlignment" id="alignment1">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                  <object class="GtkFixed" id="outgoing_fixed">
+                    <property name="no_show_all">True</property>
                     <child>
-                      <placeholder/>
+                      <object class="GtkViewport" id="viewport1">
+                        <property name="width_request">160</property>
+                        <property name="height_request">120</property>
+                        <property name="visible">True</property>
+                        <property name="resize_mode">queue</property>
+                        <child>
+                          <object class="GtkDrawingArea" id="outgoing_drawingarea">
+                            <property name="width_request">160</property>
+                            <property name="height_request">120</property>
+                            <property name="visible">True</property>
+                            <property name="double_buffered">False</property>
+                          </object>
+                        </child>
+                      </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="position">14</property>
+                    <property name="expand">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="send_button">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment102">
+                      <object class="GtkViewport" id="viewport2">
                         <property name="visible">True</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="resize_mode">queue</property>
                         <child>
-                          <object class="GtkHBox" id="hbox3010">
+                          <object class="GtkDrawingArea" id="incoming_drawingarea">
+                            <property name="width_request">320</property>
+                            <property name="height_request">240</property>
                             <property name="visible">True</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image1339">
-                                <property name="visible">True</property>
-                                <property name="stock">gtk-jump-to</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label373">
-                                <property name="visible">True</property>
-                                <property name="label" translatable="yes" comments="Make sure the character after &quot;_&quot; is not M/m (conflicts with Alt+M that is supposed to show the Emoticon Selector)">_Send</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="double_buffered">False</property>
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="position">15</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="position">2</property>
+                <property name="resize">True</property>
+                <property name="shrink">True</property>
               </packing>
             </child>
           </object>
@@ -712,8 +768,8 @@ audio-mic-volume-low</property>
             <property name="relief">none</property>
           </object>
           <packing>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -727,8 +783,8 @@ audio-mic-volume-low</property>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -742,8 +798,8 @@ audio-mic-volume-low</property>
           <packing>
             <property name="left_attach">2</property>
             <property name="right_attach">3</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -757,8 +813,8 @@ audio-mic-volume-low</property>
           <packing>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -774,8 +830,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">2</property>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -791,8 +847,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">3</property>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -806,8 +862,8 @@ audio-mic-volume-low</property>
           <packing>
             <property name="top_attach">2</property>
             <property name="bottom_attach">3</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -823,8 +879,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">2</property>
             <property name="top_attach">2</property>
             <property name="bottom_attach">3</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -840,8 +896,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">3</property>
             <property name="top_attach">2</property>
             <property name="bottom_attach">3</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -855,8 +911,8 @@ audio-mic-volume-low</property>
           <packing>
             <property name="top_attach">3</property>
             <property name="bottom_attach">4</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -872,8 +928,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">2</property>
             <property name="top_attach">3</property>
             <property name="bottom_attach">4</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
         <child>
@@ -889,8 +945,8 @@ audio-mic-volume-low</property>
             <property name="right_attach">3</property>
             <property name="top_attach">3</property>
             <property name="bottom_attach">4</property>
-            <property name="x_options"></property>
-            <property name="y_options"></property>
+            <property name="x_options"/>
+            <property name="y_options"/>
           </packing>
         </child>
       </object>
diff --git a/data/gui/preferences_window.ui b/data/gui/preferences_window.ui
index 0136e037ba5def554a68432c10e22738ecac8738..16c11804029c0c10a6c38a4a955caf3a134ba8b6 100644
--- a/data/gui/preferences_window.ui
+++ b/data/gui/preferences_window.ui
@@ -2174,7 +2174,7 @@ $T will be replaced by auto-not-available timeout</property>
                         <child>
                           <object class="GtkTable" id="table8">
                             <property name="visible">True</property>
-                            <property name="n_rows">4</property>
+                            <property name="n_rows">5</property>
                             <property name="n_columns">2</property>
                             <property name="column_spacing">6</property>
                             <property name="row_spacing">6</property>
@@ -2270,6 +2270,21 @@ $T will be replaced by auto-not-available timeout</property>
                                 <property name="bottom_attach">4</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkCheckButton" id="video_see_self_checkbutton">
+                                <property name="label" translatable="yes">View own video source</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_video_see_self_checkbutton_toggled"/>
+                              </object>
+                              <packing>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">4</property>
+                                <property name="bottom_attach">5</property>
+                              </packing>
+                            </child>
                           </object>
                         </child>
                       </object>
diff --git a/src/chat_control.py b/src/chat_control.py
index 466ce7ba05b886d14ade90ae414144f174acd890..ddb2a916c50d727eb6f0f1876b70c95910e1a2a6 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -2151,10 +2151,27 @@ class ChatControl(ChatControlBase):
         if widget.get_active():
             if getattr(self, jingle_type + '_state') == \
             self.JINGLE_STATE_NULL:
-                sid = getattr(gajim.connections[self.account],
+                if jingle_type == 'video':
+                    video_hbox = self.xml.get_object('video_hbox')
+                    video_hbox.set_no_show_all(False)
+                    if gajim.config.get('video_see_self'):
+                        fixed = self.xml.get_object('outgoing_fixed')
+                        fixed.set_no_show_all(False)
+                    video_hbox.show_all()
+                    in_xid = self.xml.get_object('incoming_drawingarea').window.xid
+                    out_xid = self.xml.get_object('outgoing_drawingarea').window.xid
+                    sid = gajim.connections[self.account].start_video(
+                        self.contact.get_full_jid(), in_xid, out_xid)
+                else:
+                    sid = getattr(gajim.connections[self.account],
                         'start_' + jingle_type)(self.contact.get_full_jid())
                 getattr(self, 'set_' + jingle_type + '_state')('connecting', sid)
         else:
+            video_hbox = self.xml.get_object('video_hbox')
+            video_hbox.set_no_show_all(True)
+            video_hbox.hide()
+            fixed = self.xml.get_object('outgoing_fixed')
+            fixed.set_no_show_all(True)
             self.close_jingle_content(jingle_type)
 
         img = getattr(self, '_' + jingle_type + '_button').get_property('image')
diff --git a/src/common/config.py b/src/common/config.py
index 928912f9edcb537b80767bd4553e33122df5ae4a..addbd3b6360311e9f5e82e673e96b79caaad985a 100644
--- a/src/common/config.py
+++ b/src/common/config.py
@@ -305,6 +305,7 @@ class Config:
             'video_output_device': [opt_str, 'autovideosink'],
             'video_framerate': [opt_str, '', _('Optionally fix jingle output video framerate. Example: 10/1 or 25/2')],
             'video_size': [opt_str, '', _('Optionally resize jingle output video. Example: 320x240')],
+            'video_see_self': [opt_bool, True, _('If True, You will also see your webcam')],
             'audio_input_volume': [opt_int, 50],
             'audio_output_volume': [opt_int, 50],
             'use_stun_server': [opt_bool, False, _('If True, Gajim will try to use a STUN server when using jingle. The one in "stun_server" option, or the one given by the jabber server.')],
diff --git a/src/common/jingle.py b/src/common/jingle.py
index 57e26c3b11eb384601871cd801a9c001788160f7..0bb0b9d48a28ec8345490611a00279c3251be055 100644
--- a/src/common/jingle.py
+++ b/src/common/jingle.py
@@ -120,16 +120,18 @@ class ConnectionJingle(object):
             jingle.start_session()
         return jingle.sid
 
-    def start_video(self, jid):
+    def start_video(self, jid, in_xid, out_xid):
         if self.get_jingle_session(jid, media='video'):
             return self.get_jingle_session(jid, media='video').sid
         jingle = self.get_jingle_session(jid, media='audio')
         if jingle:
-            jingle.add_content('video', JingleVideo(jingle))
+            jingle.add_content('video', JingleVideo(jingle, in_xid=in_xid,
+                out_xid=out_xid))
         else:
             jingle = JingleSession(self, weinitiate=True, jid=jid)
             self._sessions[jingle.sid] = jingle
-            jingle.add_content('video', JingleVideo(jingle))
+            jingle.add_content('video', JingleVideo(jingle, in_xid=in_xid,
+                out_xid=out_xid))
             jingle.start_session()
         return jingle.sid
 
diff --git a/src/common/jingle_rtp.py b/src/common/jingle_rtp.py
index 44b0a22fa7b1e57c4f7758820f10d3c12055176c..1691e2097d349f7d93c672c2d88b249417a6603e 100644
--- a/src/common/jingle_rtp.py
+++ b/src/common/jingle_rtp.py
@@ -22,6 +22,7 @@ import socket
 
 import nbxmpp
 import farstream, gst
+import gst.interfaces
 from glib import GError
 
 import gajim
@@ -63,6 +64,7 @@ class JingleRTPContent(JingleContent):
         # pipeline and bus
         self.pipeline = gst.Pipeline()
         bus = self.pipeline.get_bus()
+        bus.enable_sync_message_emission()
         bus.add_signal_watch()
         bus.connect('message', self._on_gst_message)
 
@@ -366,8 +368,11 @@ class JingleAudio(JingleRTPContent):
 
 
 class JingleVideo(JingleRTPContent):
-    def __init__(self, session, transport=None):
+    def __init__(self, session, transport=None, in_xid=0, out_xid=0):
         JingleRTPContent.__init__(self, session, 'video', transport)
+        self.in_xid = in_xid
+        self.out_xid = out_xid
+        self.out_xid_set = False
         self.setup_stream()
 
     def setup_stream(self):
@@ -375,6 +380,8 @@ class JingleVideo(JingleRTPContent):
         # sometimes, one window won't show up,
         # sometimes it'll freeze...
         JingleRTPContent.setup_stream(self, self._on_src_pad_added)
+        bus = self.pipeline.get_bus()
+        bus.connect('sync-message::element', self._on_sync_message)
 
         # the local parts
         if gajim.config.get('video_framerate'):
@@ -390,17 +397,25 @@ class JingleVideo(JingleRTPContent):
             video_size = 'video/x-raw-yuv,width=%s,height=%s ! ' % (w, h)
         else:
             video_size = ''
+        if gajim.config.get('video_see_self'):
+            tee = '! tee name=t ! queue ! videoscale ! ' + \
+                'video/x-raw-yuv,width=160,height=120 ! ffmpegcolorspace ! ' + \
+                '%s t. ! queue ' % gajim.config.get(
+                'video_output_device')
+        else:
+            tee = ''
+
         self.src_bin = self.make_bin_from_config('video_input_device',
-            '%%s ! %svideoscale ! %sffmpegcolorspace' % (framerate, video_size),
-            _("video input"))
-        #caps = gst.element_factory_make('capsfilter')
-        #caps.set_property('caps', gst.caps_from_string('video/x-raw-yuv, width=320, height=240'))
+            '%%s %s! %svideoscale ! %sffmpegcolorspace' % (tee, framerate,
+            video_size), _("video input"))
+
 
         self.pipeline.add(self.src_bin)#, caps)
+        self.pipeline.set_state(gst.STATE_PLAYING)
         #src_bin.link(caps)
 
         self.sink = self.make_bin_from_config('video_output_device',
-            'videoscale ! ffmpegcolorspace ! %s force-aspect-ratio=True',
+            'videoscale ! ffmpegcolorspace ! %s',
             _("video output"))
         self.pipeline.add(self.sink)
 
@@ -410,11 +425,27 @@ class JingleVideo(JingleRTPContent):
         # The following is needed for farstream to process ICE requests:
         self.pipeline.set_state(gst.STATE_PLAYING)
 
+    def _on_sync_message(self, bus, message):
+        if message.structure is None:
+            return False
+        if message.structure.get_name() == 'prepare-xwindow-id':
+            message.src.set_property('force-aspect-ratio', True)
+            imagesink = message.src
+            if gajim.config.get('video_see_self') and not self.out_xid_set:
+                imagesink.set_xwindow_id(self.out_xid)
+                self.out_xid_set = True
+            else:
+                imagesink.set_xwindow_id(self.in_xid)
+
     def get_fallback_src(self):
         # TODO: Use avatar?
         pipeline = 'videotestsrc is-live=true ! video/x-raw-yuv,framerate=10/1 ! ffmpegcolorspace'
         return gst.parse_bin_from_description(pipeline, True)
 
+    def destroy(self):
+        JingleRTPContent.destroy(self)
+        self.pipeline.get_bus().disconnect_by_func(self._on_sync_message)
+
 def get_content(desc):
     if desc['media'] == 'audio':
         return JingleAudio
diff --git a/src/common/multimedia_helpers.py b/src/common/multimedia_helpers.py
index 98a91a26a4987eec9264a8f1dc4ebf11b0708a27..59270f0d79b8d3bea456e7cd9fd4b70c3ca4cb3c 100644
--- a/src/common/multimedia_helpers.py
+++ b/src/common/multimedia_helpers.py
@@ -102,7 +102,7 @@ class VideoOutputManager(DeviceManager):
     def detect(self):
         self.devices = {}
         # Fake video output
-        self.detect_element('fakesink', _('Fake audio output'))
+        self.detect_element('fakesink', _('Fake video output'))
         # Auto sink
         self.detect_element('xvimagesink',
             _('X Window System (X11/XShm/Xv): %s'))
diff --git a/src/config.py b/src/config.py
index 8a140ca00dc6a5982156fc159d6afd0ace76b1af..ded12ffbb8617fcedd0b09db1c9a8367f0813ff7 100644
--- a/src/config.py
+++ b/src/config.py
@@ -478,6 +478,8 @@ class PreferencesWindow:
                 '800x600': '800x600', '640x480': '640x480',
                 '320x240': '320x240'}, 'video_size', key=lambda x: -1 if \
                 not x[1] else int(x[0][:3]))
+            st = gajim.config.get('video_see_self')
+            self.xml.get_object('video_see_self_checkbutton').set_active(st)
 
         else:
             for opt_name in ('audio_input', 'audio_output', 'video_input',
@@ -1131,6 +1133,9 @@ class PreferencesWindow:
     def on_video_size_combobox_changed(self, widget):
         self.on_av_combobox_changed(widget, 'video_size')
 
+    def on_video_see_self_checkbutton_toggled(self, widget):
+        self.on_checkbutton_toggled(widget, 'video_see_self')
+
     def on_stun_checkbutton_toggled(self, widget):
         self.on_checkbutton_toggled(widget, 'use_stun_server',
                 [self.xml.get_object('stun_server_entry')])
diff --git a/src/gajim.py b/src/gajim.py
index 894d7186e69ade6545bbc80c09d442028bca9ee5..c66f1b964bc25f25582f39de1c0b5ba6bd758510 100644
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -73,7 +73,7 @@ demandimport.enable()
 demandimport.ignore += ['gobject._gobject', 'libasyncns', 'i18n',
     'logging.NullHandler', 'dbus.service', 'OpenSSL.SSL', 'OpenSSL.crypto',
     'common.sleepy', 'DLFCN', 'dl', 'xml.sax', 'xml.sax.handler', 'ic',
-    'Crypto.PublicKey', 'IPython']
+    'Crypto.PublicKey', 'IPython', 'gst.interfaces']
 
 if os.name == 'nt':
     import locale