$ git clone http://tcclient.ion.nu/tc_client.git
commit b3632499d548b4935c25f142912b3e9bb596e7c1
Author: Alicia <...>
Date:   Wed Sep 14 23:22:18 2016 +0200

    bugfix: tc_client-gtk: when rearranging cameras, don't try to remove it from the parent container if the camera doesn't have one yet.

diff --git a/ChangeLog b/ChangeLog
index 1a0794e..dde94a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ Fixed RTMP extended timestamps (read extended timestamps for subsequent format 3
 Reorganized configure, changing many of the version comparisons for API compatibility into direct checks for availability.
 bugfix: brought back announcing when a cam stream ends.
 bugfix: take cflags into account when performing API tests in configure.
+bugfix: tc_client-gtk: when rearranging cameras, don't try to remove it from the parent container if the camera doesn't have one yet.
 modbot: only use youtube-dl's 'ytsearch:' for --get-id, and only if it doesn't appear to be an ID already.
 tc_client-gtk: handle only one sendmessage event at a time, and don't send empty lines.
 tc_client-gtk: added postprocessing options for cams upon right-click, starting with brightness adjustment.
diff --git a/utilities/gtk/media.c b/utilities/gtk/media.c
index 3ed5b65..794976a 100644
--- a/utilities/gtk/media.c
+++ b/utilities/gtk/media.c
@@ -500,7 +500,8 @@ void updatescaling(unsigned int width, unsigned int height, char changedcams)
     for(i=0; i<camcount; ++i)
     {
       g_object_ref(cams[i].box); // Increase reference counts so that they are not deallocated while they are temporarily detached from the rows
-      gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(cams[i].box)), cams[i].box);
+      GtkContainer* parent=GTK_CONTAINER(gtk_widget_get_parent(cams[i].box));
+      if(parent){gtk_container_remove(parent, cams[i].box);}
     }
     for(i=0; i<camrowcount; ++i){gtk_widget_destroy(camrows[i]);} // Erase old rows
     camrowcount=rowcount;