diff --git a/exec/bulkmail.js b/exec/bulkmail.js
index c5981e47973d8ee602ac6c7623dfd5f54121bd33..807c30c4144b66490d730647a7b510ffd085733e 100644
--- a/exec/bulkmail.js
+++ b/exec/bulkmail.js
@@ -56,6 +56,7 @@ else
     lastuser=system.stats.total_users;		// v3.10
 
 var sent=0;
+var rcpt_list=new Array();
 
 for(i=1; i<=lastuser; i++)
 {
@@ -74,20 +75,18 @@ for(i=1; i<=lastuser; i++)
 		hdr = { to_ext: String(u.number) };
 	
 	hdr.to = u.alias;
-	hdr.from = system.operator;
-	hdr.from_ext = "1";
-	hdr.subject = subj;  
-
-	printf("Sending mail to %s #%u\r\n", hdr.to, i);
-
-	if(!msgbase.save_msg(hdr, msgtxt))
-		log("!ERROR " + msgbase.last_error + "saving bulkmail message");
-	else {
-		log(format("Sent bulk mail message to: %s #%u", u.alias, i));
-		sent++;
-	}
+	rcpt_list.push(hdr);
+
+	printf("Sending mail to %s #%u\r\n", u.alias, i);
+	log(format("Sending bulk mail message to: %s #%u", u.alias, i));
+	sent++;
 }
 
+hdr = { from: system.operator, from_ext: "1", subject: subj };  
+
+if(!msgbase.save_msg(hdr, msgtxt, rcpt_list))
+	log("!ERROR " + msgbase.last_error + "saving bulkmail message");
+
 msgbase.close();
 
 if(sent>1) {