diff --git a/src/gactionmuxer.c b/src/gactionmuxer.c index d8383064d..780fbdd11 100644 --- a/src/gactionmuxer.c +++ b/src/gactionmuxer.c @@ -392,6 +392,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); @@ -525,10 +530,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); } }