 +// A cancellable message to be displayed. When the conversation service is
 +// notified of a new-text (ie. an incoming or outgoing message to be displayed),
 +// it in turn notifies observers (again, typically add-ons), which have the
-+// opportunity to swap or cancel the message. The displayMessage field is what
-+// eventually gets shown to the user.
++// opportunity to swap or cancel the message.
 +[scriptable, uuid(bd2f77d4-1fad-432d-a914-6bb5ed5c13d0)]
 +interface imIMessage: prplIMessage {
 +           attribute boolean cancelled;
++           // What eventually gets shown to the user.
 +           attribute AUTF8String displayMessage;
 +};
 diff --git a/chat/components/public/imILogger.idl b/chat/components/public/imILogger.idl

+     Can return null if no changes are to be made. */
+  void prepareForSending(in imIOutgoingMessage message,
+                         [optional] out unsigned long messageCount,
+                         [retval, array, size_is(messageCount)] out string messages);
+
   /* Send information about the current typing state to the server.
      aString should contain the content currently in the text field. The

   },
 
-  sendMsg: function (aMsg) {
+  prepareForSending: function(aOutgoingMessage, aCount) null,
+  sendMsg: function(aMsg) {
     throw Cr.NS_ERROR_NOT_IMPLEMENTED;
   },
