Index: ChangeLog
===================================================================
--- ChangeLog	(revision 128)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2007-08-07  Emmanuele Bassi  <ebassi@gnome.org>
+
+	* src/gnome-mount-properties-view.c: Correctly chain up
+	the dispose vfunc; free the keydir inside the ::finalize
+	vfunc. (#406462, reported by Jose M. daLuz, fix by Wing Sun)
+
 2007-07-25  David Zeuthen  <davidz@redhat.com>
 
 	* src/gnome-mount.c: Avoid showing an useless error dialog for
Index: src/gnome-mount-properties-view.c
===================================================================
--- src/gnome-mount-properties-view.c	(revision 128)
+++ src/gnome-mount-properties-view.c	(working copy)
@@ -92,19 +92,26 @@ static struct opt {
 G_DEFINE_TYPE (GnomeMountPropertiesView, gm_properties_view, GTK_TYPE_VBOX)
 
 static void
-gm_properties_view_dispose (GObject *object)
+gm_properties_view_finalize (GObject *gobject)
 {
-	GnomeMountPropertiesView *properties = GM_PROPERTIES_VIEW (object);
+	GnomeMountPropertiesView *properties = GM_PROPERTIES_VIEW (gobject);
+	
+        g_free (properties->keydir);
+
+        G_OBJECT_CLASS (gm_properties_view_parent_class)->finalize (gobject);
+}
+
+static void
+gm_properties_view_dispose (GObject *gobject)
+{
+	GnomeMountPropertiesView *properties = GM_PROPERTIES_VIEW (gobject);
 
 	if (properties->xml != NULL) {
 		g_object_unref (properties->xml);
 		properties->xml = NULL;
 	}
 
-	if (properties->keydir != NULL) {
-		g_free (properties->keydir);
-		properties->keydir = NULL;
-	}
+        G_OBJECT_CLASS (gm_properties_view_parent_class)->finalize (gobject);
 }
 
 static void
@@ -113,6 +120,7 @@ gm_properties_view_class_init (GnomeMoun
 	GObjectClass *g_object_class = G_OBJECT_CLASS (properties_class);
 
 	g_object_class->dispose = gm_properties_view_dispose;
+        g_object_class->finalize = gm_properties_view_finalize;
 }
 
 static char *
