diff --git a/src/terminal/main.rs b/src/terminal/main.rs
index 8e5f2d354cb8076c3e92d4f25fce22f15045efab..02affc17e34c190f1abe154b85c12d258e8597af 100644
--- a/src/terminal/main.rs
+++ b/src/terminal/main.rs
@@ -180,7 +180,10 @@ fn handle(console: &mut Console, master_fd: RawFd, process: &mut Child) {
         }
 
         match process.try_wait() {
-            Ok(_status) => break 'events,
+            Ok(status) => match status {
+                Some(_code) => break 'events,
+                None => ()
+            },
             Err(err) => match err.kind() {
                 ErrorKind::WouldBlock => (),
                 _ => panic!("terminal: failed to wait on child: {:?}", err)