diff -Naur gtk+-2.24.20.orig/gtk/gtkmountoperation.c gtk+-2.24.20/gtk/gtkmountoperation.c
--- gtk+-2.24.20.orig/gtk/gtkmountoperation.c	2011-10-01 19:29:06.000000000 +0400
+++ gtk+-2.24.20/gtk/gtkmountoperation.c	2014-01-31 15:44:58.327165137 +0400
@@ -194,7 +194,18 @@
   GtkMountOperationPrivate *priv = operation->priv;
 
   if (priv->parent_window)
-    g_object_unref (priv->parent_window);
+    {
+      /* This handler should be disconnected before GtkMountOperation is
+       * destroyed. Otherwise it will trigger when the parent window is
+       * destroyed and gtk_widget_destroyed() will write NULL to the memory
+       * previously occupied by 'priv->parent_window'. This could lead to
+       * crashes. */
+      g_signal_handlers_disconnect_by_func (priv->parent_window,
+                                            gtk_widget_destroyed,
+                                            &priv->parent_window);
+      g_object_unref (priv->parent_window);
+      priv->parent_window = NULL;
+    }
 
   if (priv->screen)
     g_object_unref (priv->screen);
