Always exit when client is gone.
diff --git a/xwl.c b/xwl.c
index 018512d..bdc3a3b 100644
--- a/xwl.c
+++ b/xwl.c
@@ -4950,9 +4950,6 @@
     }
   }
 
-  if (xwl->child_pid < 0 && xwl->xwayland_pid < 0)
-    exit(0);
-
   return 1;
 }
 
@@ -5567,10 +5564,10 @@
       xwl.child_pid = pid;
     }
     close(sv[1]);
-  } else {
-    wl_client_add_destroy_listener(xwl.client, &client_destroy_listener);
   }
 
+  wl_client_add_destroy_listener(xwl.client, &client_destroy_listener);
+
   do {
     wl_display_flush_clients(xwl.host_display);
     if (xwl.connection) {