diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 8a7cfd9cbdb27ad97bf8a3708e98a4a8b40f6c51..5d5fd66179ae0764bb8e325ac18932ff9fef58f3 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -922,15 +922,18 @@ bool new_pkthdr(fpkthdr_t* hdr, fidoaddr_t orig, fidoaddr_t dest, const nodecfg_
 	struct tm* tm;
 	time_t now = time(NULL);
 
+	memset(hdr, 0, sizeof(*hdr));
+
 	if(nodecfg != NULL) {
 		pkt_type = nodecfg->pkt_type;
-		lprintf(LOG_DEBUG, "New packet (type %s) created for linked-node: %s", pktTypeStringList[pkt_type], smb_faddrtoa(&nodecfg->addr, NULL));
+		if(nodecfg->pktpwd[0] != 0)
+			strncpy((char*)hdr->type2.password, nodecfg->pktpwd, sizeof(hdr->type2.password));
+		lprintf(LOG_DEBUG, "New %spacket (type %s) created for linked-node: %s"
+			,nodecfg->pktpwd[0] == '\0' ? "" : "password-protected ", pktTypeStringList[pkt_type], smb_faddrtoa(&nodecfg->addr, NULL));
 	}
 	else
 		lprintf(LOG_DEBUG, "New packet (type %s) created for unlinked-node: %s", pktTypeStringList[pkt_type], smb_faddrtoa(&dest, NULL));
 
-	memset(hdr, 0, sizeof(fpkthdr_t));
-
 	if((tm = localtime(&now)) != NULL) {
 		hdr->type2.year	= tm->tm_year+1900;
 		hdr->type2.month= tm->tm_mon;
@@ -951,11 +954,6 @@ bool new_pkthdr(fpkthdr_t* hdr, fidoaddr_t orig, fidoaddr_t dest, const nodecfg_
 	hdr->type2.prodcode	= SBBSECHO_PRODUCT_CODE&0xff;
 	hdr->type2.sernum	= SBBSECHO_VERSION_MAJOR;
 
-	if(nodecfg != NULL && nodecfg->pktpwd[0] != 0) {
-		lprintf(LOG_DEBUG, "Using packet password for %s: '%s'", smb_faddrtoa(&nodecfg->addr, NULL), nodecfg->pktpwd);
-		strncpy((char*)hdr->type2.password, nodecfg->pktpwd, sizeof(hdr->type2.password));
-	}
-
 	if(pkt_type == PKT_TYPE_2)
 		return true;