diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 58ae2d0faf9e68440294b9e2e030d372e7290fd1..58c50dd29ca278db467251bd83f7a359869afefb 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -1089,6 +1089,9 @@ static void smtp_thread(void* arg)
 	if((i=getsockname(socket, (struct sockaddr *)&server_addr,&addr_len))!=0) {
 		lprintf("%04d !SMTP ERROR %d (%d) getting address/port"
 			,socket, i, ERROR_VALUE);
+		sockprintf(socket,"421 System error");
+		mail_close_socket(socket);
+		thread_down();
 		return;
 	}