$ git clone http://tcclient.ion.nu/tc_client.git
commit b82f6248a1a9b83411b57036519e3990ce800cdd
Author: Alicia <...>
Date:   Mon Oct 17 20:34:44 2016 +0200

    tc_client-gtk: bugfix: don't rely on stack allocated variables for GUI callbacks.

diff --git a/ChangeLog b/ChangeLog
index 629efdb..eb066c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,5 @@
+0.41:
+tc_client-gtk: bugfix: don't rely on stack allocated variables for GUI callbacks.
 0.40:
 Moved the backward compatibility code for avcodec_{send,receive}_{frame,packet} into a separate source file to avoid pulling libavcodec into utilities that don't use it.
 Improved the RTMP acknowledgement code: counting the format 3 headers which were previously skipped, setting a more reasonable acknowledgement interval at startup and giving the server some margin before dropping outgoing video packets.
diff --git a/utilities/gtk/gui.c b/utilities/gtk/gui.c
index 27cd624..7c5e632 100644
--- a/utilities/gtk/gui.c
+++ b/utilities/gtk/gui.c
@@ -850,6 +850,8 @@ void handleresizepane(GObject* obj, GParamSpec* spec, void* data)
   }
 }
 
+static struct channelopts cc_connect={-1,0};
+static struct channelopts cc_add={-1,1};
 void gui_init(char frombuild)
 {
   if(frombuild)
@@ -950,11 +952,9 @@ void gui_init(char frombuild)
   GtkWidget* startwindow=GTK_WIDGET(gtk_builder_get_object(gui, "startwindow"));
   // Connect signal for quick connect
   item=GTK_WIDGET(gtk_builder_get_object(gui, "start_menu_connect"));
-  struct channelopts cc_connect={-1,0};
   g_signal_connect(item, "activate", G_CALLBACK(channeldialog), &cc_connect);
   // Connect signal for the add option
   item=GTK_WIDGET(gtk_builder_get_object(gui, "start_menu_add"));
-  struct channelopts cc_add={-1,1};
   g_signal_connect(item, "activate", G_CALLBACK(channeldialog), &cc_add);
   // Connect signal for tab changing (to un-highlight)
   item=GTK_WIDGET(gtk_builder_get_object(gui, "tabs"));