diff -u -r ../calcurse-4.4.0/src/io.c ./src/io.c
--- ../calcurse-4.4.0/src/io.c	2019-02-04 20:44:04.000000000 +0000
+++ ./src/io.c	2019-03-01 20:49:16.393057747 +0000
@@ -1399,7 +1399,6 @@
 	EXIT_IF(delay < 0, _("Invalid delay"));
 	char *mesg = _("Periodic save: data files have changed. Save cancelled.");
 
-	pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
 	for (;;) {
 		sleep(delay * MININSEC);
 		pthread_mutex_lock(&io_periodic_save_mutex);
@@ -1424,8 +1423,7 @@
 
 	/* Lock the mutex to avoid cancelling the thread during saving. */
 	pthread_mutex_lock(&io_periodic_save_mutex);
-	pthread_cancel(io_t_psave);
-	pthread_join(io_t_psave, NULL);
+	pthread_kill(io_t_psave, 0);
 	pthread_mutex_unlock(&io_periodic_save_mutex);
 	io_t_psave = pthread_self();
 }