Blob Blame History Raw
--- ./build/src/mn-tooltips.c.orig	2011-12-09 01:03:51.024311968 +0100
+++ ./build/src/mn-tooltips.c	2011-12-09 01:09:32.540516561 +0100
@@ -268,17 +268,22 @@
 {
 #line 87 "src/mn-tooltips.gob"
 	
+    GSList *data_list_copy;
     GSList *l;
 
     if (selfp->timeout_id)
       g_source_remove(selfp->timeout_id);
 
-    MN_LIST_FOREACH(l, selfp->data_list)
+    /* Create a copy of the list to avoid memory corruption as the
+     * self_widget_remove call removes the item from selfp->data_list */
+    data_list_copy = g_slist_copy(selfp->data_list);
+    MN_LIST_FOREACH(l, data_list_copy)
       {
 	TooltipsData *data = l->data;
 	self_widget_remove(data->widget, data);
       }
 
+    g_slist_free(data_list_copy);
     self_unset_window(self);
   }}
 #line 285 "mn-tooltips.c"