          this.notifyObservers(aSubject, "new-directed-incoming-message", aData);
          Services.obs.notifyObservers(aSubject, "new-directed-incoming-message", aData);
        }
-@@ -294,17 +351,47 @@ UIConversation.prototype = {
+@@ -294,17 +310,47 @@ UIConversation.prototype = {
  
    // prplIConversation
    get isChat() this.target.isChat,

diff --git a/chat/modules/jsProtoHelper.jsm b/chat/modules/jsProtoHelper.jsm
--- a/chat/modules/jsProtoHelper.jsm
+++ b/chat/modules/jsProtoHelper.jsm
@@ -467,17 +467,18 @@ const GenericConversationPrototype = {
       try {
         observer.observe(aSubject, aTopic, aData);
       } catch(e) {

       this.target = this._prplConv[aTargetId];
+
+    if (aTopic == "new-text") {
+      this.notifyObservers(aSubject, "received-message");
+      if (aSubject.cancelled)
+        return;
