diff --git a/inc/mail.php b/inc/mail.php
index b677c2b38a3cdce1288a4ee5c1baf68a038f058a..d908c009c7c8b6694a0ef2dba747a58c60ee6d6d 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -34,11 +34,27 @@
  * @see    mail()
  */
 function mail_send($to, $subject, $body, $from='', $cc='', $bcc='', $headers=null, $params=null){
+
   $message = compact('to','subject','body','from','cc','bcc','headers','params');
-  trigger_event('MAIL_MESSAGE_SEND',$message,'_mail_send');
+  return trigger_event('MAIL_MESSAGE_SEND',$message,'_mail_send_action');
 }
 
-function _mail_send($to, $subject, $body, $from='', $cc='', $bcc='', $headers=null, $params=null){
+function _mail_send_action($data) {
+
+  // retrieve parameters from event data, $to, $subject, $body, $from, $cc, $bcc, $headers, $params
+  $to = $data['to'];
+  $subject = $data['subject'];
+  $body = $data['body'];
+
+  // add robustness in case plugin removes any of these optional values
+  $from = isset($data['from']) ? $data['from'] : '';
+  $cc = isset($data['cc']) ? $data['cc'] : '';
+  $bcc = isset($data['bcc']) ? $data['bcc'] : '';
+  $headers = isset($data['headers']) ? $data['headers'] : null;
+  $params = isset($data['params']) ? $data['params'] : null;
+
+  // end additional code to support event ... original mail_send() code from here
+
   if(defined('MAILHEADER_ASCIIONLY')){
     $subject = utf8_deaccent($subject);
     $subject = utf8_strip($subject);