Just replace the function add (about the line 37 of message_stack.php) by that code:

Code:
 function add($class, $message, $type = 'error') {
    global $template, $current_page_base;
    $message = trim($message);
    if (strlen($message) > 0) {
 //checking if it is not a double message
 $double = 0;
 for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) {
 if($this->messages[$i]['text'] ==  zen_image($template->get_template_dir(ICON_IMAGE_SUCCESS, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_SUCCESS, ICON_SUCCESS_ALT) . '  ' . $message) $double = 1;
 }
 if($double == 0) {
      if ($type == 'error') {
        $this->messages[] = array('params' => 'class="messageStackError larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_ERROR, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_ERROR, ICON_ERROR_ALT) . '  ' . $message);
      } elseif ($type == 'warning') {
        $this->messages[] = array('params' => 'class="messageStackWarning larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_WARNING, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_WARNING, ICON_WARNING_ALT) . '  ' . $message);
      } elseif ($type == 'success') {
        $this->messages[] = array('params' => 'class="messageStackSuccess larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_SUCCESS, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_SUCCESS, ICON_SUCCESS_ALT) . '  ' . $message);
      } elseif ($type == 'caution') {
        $this->messages[] = array('params' => 'class="messageStackCaution larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_WARNING, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_WARNING, ICON_WARNING_ALT) . '  ' . $message);
      } else {
        $this->messages[] = array('params' => 'class="messageStackError larger"', 'class' => $class, 'text' => $message);
      }
   }
    }
  }
Note that it will eliminate the double message of the "success" type only. If you have other type double messages the "if" condition should be changed accordingly. I have not managed to get the code of DrByte working and did not have time to debug it.