diff --git a/gtk/gactionmuxer.c b/gtk/gactionmuxer.c index 22990a40e3..532eec4ca1 100644 --- a/gtk/gactionmuxer.c +++ b/gtk/gactionmuxer.c @@ -352,6 +352,11 @@ static void g_action_muxer_free_group (gpointer data) { Group *group = data; + gint i; + + /* 'for loop' or 'four loop'? */ + for (i = 0; i < 4; i++) + g_signal_handler_disconnect (group->group, group->handler_ids[i]); g_object_unref (group->group); g_free (group->prefix); @@ -485,10 +490,6 @@ g_action_muxer_remove (GActionMuxer *muxer, g_action_muxer_action_removed (group->group, actions[i], group); g_strfreev (actions); - /* 'for loop' or 'four loop'? */ - for (i = 0; i < 4; i++) - g_signal_handler_disconnect (group->group, group->handler_ids[i]); - g_action_muxer_free_group (group); } }