diff --git a/chat-client.c b/chat-client.c
index fe608f5b28f63cbf1de9975beb7ac4490f172b97..876ad300c1c3d8038bde96c410ee2e909aa974b5 100644
--- a/chat-client.c
+++ b/chat-client.c
@@ -142,7 +142,18 @@ void *handle_outputs(void *window_arg) {
 void on_signal(int sig) {
     running = false;
     send_message(socket_fd, "EXIT");
-    cleanup();
+//    cleanup();
+    sigset(SIGINT, SIG_IGN);
+    sigset(SIGSEGV, SIG_IGN);
+    sigset(SIGABRT, SIG_IGN);
+    nocrmode();
+    echo();
+    nl();
+    curs_set(initial_cursor_state);
+    endwin();
+    close(socket_fd);
+    pthread_mutex_destroy(&mutex);
+
     fprintf(stderr, "Terminating due to signal %d.\n", sig);
     exit(128 + sig);
 }