diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index bf62e04e2b0afbd75fd2ae4729920229894ca39a..36d304823092477c9c4ed7423c287a1d97be11c1 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -2352,15 +2352,14 @@ static void sendmail_thread(void* arg)
 				server=startup->relay_server;
 				port=startup->relay_port;
 			} else {
-				sprintf(to,"%.*s",(int)sizeof(to)-1,(char*)msg.to_net.addr);
-				p=strrchr(to,'>');	/* Truncate '>' */
-				if(p!=NULL) *p=0;
-
-				p=strrchr(to,':');	/* non-standard SMTP port */
+				p=strrchr((char*)msg.to_net.addr,':');	/* non-standard SMTP port */
 				if(p!=NULL) {
 					*p=0;
 					port=atoi(p+1);
 				}
+				sprintf(to,"%.*s",(int)sizeof(to)-1,(char*)msg.to_net.addr);
+				p=strrchr(to,'>');	/* Truncate '>' */
+				if(p!=NULL) *p=0;
 
 				p=strrchr(to,'@');
 				if(p==NULL) {