summaryrefslogtreecommitdiff
path: root/protocols/JabberG/src/jabber_thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/JabberG/src/jabber_thread.cpp')
-rw-r--r--protocols/JabberG/src/jabber_thread.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/protocols/JabberG/src/jabber_thread.cpp b/protocols/JabberG/src/jabber_thread.cpp
index cbd8708fbf..b1d5eb28cf 100644
--- a/protocols/JabberG/src/jabber_thread.cpp
+++ b/protocols/JabberG/src/jabber_thread.cpp
@@ -1417,8 +1417,12 @@ void CJabberProto::OnProcessMessage(const TiXmlElement *node, ThreadData *info)
}
// Create a temporary contact, if needed
- if (hContact == 0)
- hContact = CreateTemporaryContact(from, chatItem);
+ if (hContact == 0) {
+ if (item)
+ hContact = item->hContact;
+ else
+ hContact = CreateTemporaryContact(from, chatItem);
+ }
if (!bOffline)
CallService(MS_PROTO_CONTACTISTYPING, hContact, PROTOTYPE_CONTACTTYPING_OFF);
@@ -1588,7 +1592,7 @@ void CJabberProto::OnProcessPresence(const TiXmlElement *node, ThreadData *info)
debugLogA("SKIP Receive presence online from %s (who is not in my roster and not in list - skipping)", from);
return;
}
- hContact = DBCreateContact(from, nick, true, true);
+ hContact = DBCreateContact(from, nick, true, false);
}
if (!ListGetItemPtr(LIST_ROSTER, from)) {