diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c
index b774937..ceeabd9 100644
--- a/gtk/gtkpaned.c
+++ b/gtk/gtkpaned.c
@@ -98,6 +98,7 @@ static gboolean gtk_paned_enter                 (GtkWidget        *widget,
 						 GdkEventCrossing *event);
 static gboolean gtk_paned_leave                 (GtkWidget        *widget,
 						 GdkEventCrossing *event);
+static void stop_drag                           (GtkPaned         *paned);
 static gboolean gtk_paned_button_press          (GtkWidget        *widget,
 						 GdkEventButton   *event);
 static gboolean gtk_paned_button_release        (GtkWidget        *widget,
@@ -1209,7 +1210,12 @@ gtk_paned_button_press (GtkWidget      *widget,
 {
   GtkPaned *paned = GTK_PANED (widget);
 
-  if (!paned->in_drag &&
+  if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
+    {
+      stop_drag (paned);
+      gtk_paned_set_position (paned, -1);
+    }
+  else if (!paned->in_drag &&
       (event->window == paned->handle) && (event->button == 1))
     {
       /* We need a server grab here, not gtk_grab_add(), since
