I posted a few month ago a bugreport on the same problem and I was fixed but not fully fixed.
The problem only occurs if a user is connected with his credentials several time under different ressources like:
the server should then consider the priority for delivering messages:
Jivemessenger is doing this but only considers priority 0 as lower than for example 5.
if prio is 0 and 5 the messeages go to prio 5 -> ok
if prio is 1 and 5 the messages go to 1 -> Wrong implementaion
ift looks like the the server has other mechnisms like last activity or so to schedule the messages but the jabber protocol says:
"For message stanzas, the server SHOULD deliver the stanza to
the highest-priority available resource (if the resource did
not provide a value for the element, the server
SHOULD consider it to have provided a value of zero)."