close terminal window on exit
diff --git a/clients/terminal.c b/clients/terminal.c
index 1e015c1..78f575f 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -2268,6 +2268,9 @@
 	gsize bytes_read;
 	GError *error = NULL;
 
+	if(condition == G_IO_HUP)
+          exit(0);
+
 	g_io_channel_read_chars(source, buffer, sizeof buffer,
 				&bytes_read, &error);
 
@@ -2298,8 +2301,8 @@
 	terminal->master = master;
 	terminal->channel = g_io_channel_unix_new(master);
 	fcntl(master, F_SETFL, O_NONBLOCK);
-	g_io_add_watch(terminal->channel, G_IO_IN,
-		       io_handler, terminal);
+	g_io_add_watch(terminal->channel, G_IO_IN, io_handler, terminal);
+        g_io_add_watch(terminal->channel, G_IO_HUP, io_handler, terminal);
 
 	return 0;
 }