diff -ruN original/mailsystem.install mod/mailsystem.install
--- original/mailsystem.install	2011-06-25 23:27:28.000000000 +0700
+++ mod/mailsystem.install	2011-08-04 00:27:59.000000000 +0700
@@ -62,6 +62,17 @@
 }
 
 /**
+ * Implements hook_update_N().
+ *
+ * @see mailsystem_install()
+ */
+function mailsystem_update_6201() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {system} SET weight = 9999 WHERE name = 'mailsystem' and type = 'module'");
+  return $ret;
+}
+
+/**
  * Implements hook_enable().
  */
 function mailsystem_enable() {
@@ -79,6 +90,16 @@
 }
 
 /**
+ * Implements hook_install().
+ *
+ * Sets module's weight to a very bid value to be sure mailsystem_mail_alter()
+ * runs after all other hook_mail_alter() implementations.
+ */
+function mailsystem_install() {
+  db_query("UPDATE {system} SET weight = 9999 WHERE name = 'mailsystem' and type = 'module'");
+}
+
+/**
  * Implements hook_uninstall().
  */
 function mailsystem_uninstall() {
diff -ruN original/mailsystem.module mod/mailsystem.module
--- original/mailsystem.module	2011-06-25 23:27:28.000000000 +0700
+++ mod/mailsystem.module	2011-08-04 00:56:28.000000000 +0700
@@ -329,6 +329,9 @@
  * Creates an instance of the MailSystemInterface class appropriate to the
  * $message['id'] and invokes its format() method on the message array.
  *
+ * It must run after all other hook_mail_alter() implementations (achieved
+ * with high module weight).
+ *
  * @param &$message
  *   The message array to be altered.
  */
