diff -Nru finalterm-0.1/debian/bzr-builder.manifest finalterm-0.1/debian/bzr-builder.manifest --- finalterm-0.1/debian/bzr-builder.manifest 2014-07-07 00:20:41.000000000 +0000 +++ finalterm-0.1/debian/bzr-builder.manifest 2014-07-16 22:25:59.000000000 +0000 @@ -1,3 +1,3 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~125 -lp:finalterm revid:git-v1:5ccde4e8f2c02a398f9172e07c25262ecf954626 +# bzr-builder format 0.3 deb-version {debupstream}-0~126 +lp:finalterm revid:git-v1:6ec39f8215b0732f52f74b0d96ed48abbffc1d9f nest-part packaging lp:~versable/finalterm/deb-packaging debian debian revid:versable@gmail.com-20130920172445-xgm6tyh07s8nidep diff -Nru finalterm-0.1/debian/changelog finalterm-0.1/debian/changelog --- finalterm-0.1/debian/changelog 2014-07-07 00:20:41.000000000 +0000 +++ finalterm-0.1/debian/changelog 2014-07-16 22:25:59.000000000 +0000 @@ -1,8 +1,8 @@ -finalterm (0.1-0~125~ubuntu13.10.1) saucy; urgency=low +finalterm (0.1-0~126~ubuntu13.10.1) saucy; urgency=low * Auto build. - -- Launchpad Package Builder Mon, 07 Jul 2014 00:20:41 +0000 + -- Launchpad Package Builder Wed, 16 Jul 2014 22:25:59 +0000 finalterm (0.1) precise; urgency=low diff -Nru finalterm-0.1/src/Terminal.vala finalterm-0.1/src/Terminal.vala --- finalterm-0.1/src/Terminal.vala 2014-07-07 00:20:39.000000000 +0000 +++ finalterm-0.1/src/Terminal.vala 2014-07-16 22:25:58.000000000 +0000 @@ -271,6 +271,10 @@ message(_("Connection broken")); return false; } + if (!(IOFlags.IS_READABLE in command_channel.get_flags())) { + message(_("Channel not readable")); + return false; + } // TODO: Read all available characters rather than one unichar character; diff -Nru finalterm-0.1/src/TerminalWidget.vala finalterm-0.1/src/TerminalWidget.vala --- finalterm-0.1/src/TerminalWidget.vala 2014-07-07 00:20:39.000000000 +0000 +++ finalterm-0.1/src/TerminalWidget.vala 2014-07-16 22:25:58.000000000 +0000 @@ -51,8 +51,15 @@ terminal.shell_terminated.connect(() => { shell_terminated_called = true; - if (!close_called) - close(); + if (!close_called) { + // Triggered by the Posix SIGCHLD signal, the shell_terminated signal + // is called from a separate thread. To safely call GTK+ functions, + // the close signal needs to be emitted on the GTK+ main thread. + Gdk.threads_add_idle(() => { + close(); + return false; + }); + } }); close.connect(() => {