diff --git a/src/sbbs3/postmsg.cpp b/src/sbbs3/postmsg.cpp
index 41ec13ec82ba7d4161b1c5addcde9e89708a0c88..e952e22486e88b3648c19e0c5353ce1d2a5bfce1 100644
--- a/src/sbbs3/postmsg.cpp
+++ b/src/sbbs3/postmsg.cpp
@@ -359,18 +359,24 @@ extern "C" int DLLCALL msg_client_hfields(smbmsg_t* msg, client_t* client)
 
 	if(client->user!=NULL && (i=smb_hfield_str(msg,SENDERUSERID,client->user))!=SMB_SUCCESS)
 		return(i);
-	if((i=smb_hfield_str(msg,SENDERTIME,xpDateTime_to_isoDateTimeStr(gmtime_to_xpDateTime(client->time)
+	if(client->time
+		&& (i=smb_hfield_str(msg,SENDERTIME,xpDateTime_to_isoDateTimeStr(gmtime_to_xpDateTime(client->time)
 		,/* separators: */"","","", /* precision: */0
 		,date,sizeof(date))))!=SMB_SUCCESS)
 		return(i);
-	if((i=smb_hfield_str(msg,SENDERIPADDR,client->addr))!=SMB_SUCCESS)
+	if(*client->addr
+		&& (i=smb_hfield_str(msg,SENDERIPADDR,client->addr))!=SMB_SUCCESS)
 		return(i);
-	if((i=smb_hfield_str(msg,SENDERHOSTNAME,client->host))!=SMB_SUCCESS)
+	if(*client->host
+		&& (i=smb_hfield_str(msg,SENDERHOSTNAME,client->host))!=SMB_SUCCESS)
 		return(i);
 	if(client->protocol!=NULL && (i=smb_hfield_str(msg,SENDERPROTOCOL,client->protocol))!=SMB_SUCCESS)
 		return(i);
-	SAFEPRINTF(port,"%u",client->port);
-	return smb_hfield_str(msg,SENDERPORT,port);
+	if(client->port) {
+		SAFEPRINTF(port,"%u",client->port);
+		return smb_hfield_str(msg,SENDERPORT,port);
+	}
+	return SMB_SUCCESS;
 }
 
 /* Note: support MSG_BODY only, no tails or other data fields (dfields) */