diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py
index ad236fed6bfb62daf8afa494c1c4f029d71bf09f..777049b8228b35b46fb7e8cb750084bec7b6d257 100644
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -308,6 +308,12 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
         id_ = widget.connect('changed',
             self.on_conversation_vadjustment_changed)
         self.handlers[id_] = widget
+
+        vscrollbar = self.conv_scrolledwindow.get_vscrollbar()
+        id_ = vscrollbar.connect('button-release-event',
+                                 self._on_scrollbar_button_release)
+        self.handlers[id_] = vscrollbar
+
         self.correcting = False
         self.last_sent_msg = None
 
@@ -1256,6 +1262,14 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
                 # There were events to remove
                 self.redraw_after_event_removed(jid)
 
+    def _on_scrollbar_button_release(self, scrollbar, event):
+        if event.get_button()[1] != 1:
+            # We want only to catch the left mouse button
+            return
+        if not gtkgui_helpers.at_the_end(scrollbar.get_parent()):
+            app.log('autoscroll').info('Autoscroll disabled')
+            self.conv_textview.autoscroll = False
+
     def _on_scroll(self, widget, event):
         if not self.conv_textview.autoscroll:
             # autoscroll is already disabled