diff --git a/src/common/xmpp/roster.py b/src/common/xmpp/roster.py
index b90c30732f774d11bf368f5e41066b4d7c2ac5f3..33472c56b94b25a02bdb9207071567eeb39d3900 100644
--- a/src/common/xmpp/roster.py
+++ b/src/common/xmpp/roster.py
@@ -87,7 +87,11 @@ class Roster(PlugIn):
     def PresenceHandler(self,dis,pres):
         """ Presence tracker. Used internally for setting items' resources state in
             internal roster representation. """
-        jid=JID(pres.getFrom())
+        jid=pres.getFrom()
+        if not jid:
+            # If no from attribue, it's from server
+            jid=self._owner.Server
+        jid=JID(jid)
         if not self._data.has_key(jid.getStripped()): self._data[jid.getStripped()]={'name':None,'ask':None,'subscription':'none','groups':['Not in roster'],'resources':{}}
         if type(self._data[jid.getStripped()]['resources'])!=type(dict()):
             self._data[jid.getStripped()]['resources']={}