diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c
index 107adefd6acea98527d4d70a3a986b8e349ae598..45fafaa24c818ad5ff58f95788f70acf5c83e2f4 100644
--- a/src/syncterm/modem.c
+++ b/src/syncterm/modem.c
@@ -258,23 +258,23 @@ int modem_connect(struct bbslist *bbs)
 	}
 
 	if(!create_conn_buf(&conn_inbuf, BUFFER_SIZE)) {
-		modem_close();
+		conn_api.close();
 		return(-1);
 	}
 	if(!create_conn_buf(&conn_outbuf, BUFFER_SIZE)) {
-		modem_close();
+		conn_api.close();
 		destroy_conn_buf(&conn_inbuf);
 		return(-1);
 	}
 	if(!(conn_api.rd_buf=(unsigned char *)malloc(BUFFER_SIZE))) {
-		modem_close();
+		conn_api.close();
 		destroy_conn_buf(&conn_inbuf);
 		destroy_conn_buf(&conn_outbuf);
 		return(-1);
 	}
 	conn_api.rd_buf_size=BUFFER_SIZE;
 	if(!(conn_api.wr_buf=(unsigned char *)malloc(BUFFER_SIZE))) {
-		modem_close();
+		conn_api.close();
 		destroy_conn_buf(&conn_inbuf);
 		destroy_conn_buf(&conn_outbuf);
 		FREE_AND_NULL(conn_api.rd_buf);