diff -urN psi-darcs/iris/xmpp-im/xmpp_tasks.cpp psi-darcs-orig+rc/iris/xmpp-im/xmpp_tasks.cpp --- iris/xmpp-im/xmpp_tasks.cpp 2005-11-18 17:18:30.000000000 +0100 +++ psi-darcs-orig+rc/iris/xmpp-im/xmpp_tasks.cpp 2005-11-29 03:24:45.000000000 +0100 @@ -1264,7 +1264,7 @@ // send(iq); // return TRUE; //} - else if(ns == "http://jabber.org/protocol/disco#info") { + else if ((ns == "http://jabber.org/protocol/disco#info") && (queryTag(e).attribute("node") == QString::null)) { QDomElement iq = createIQ(doc(), "result", e.attribute("from"), e.attribute("id")); QDomElement query = doc()->createElement("query"); query.setAttribute("xmlns", "http://jabber.org/protocol/disco#info"); @@ -1285,6 +1285,14 @@ send(iq); return true; + } else if ((ns == "http://jabber.org/protocol/disco#items") && (queryTag(e).attribute("node") == QString::null)) { + QDomElement iq = createIQ(doc(), "result", e.attribute("from"), e.attribute("id")); + QDomElement query = doc()->createElement("query"); + query.setAttribute("xmlns", "http://jabber.org/protocol/disco#items"); + iq.appendChild(query); + + send(iq); + return true; } return false; diff -urN psi-darcs/src/psievent.cpp psi-darcs-orig+rc/src/psievent.cpp --- src/psievent.cpp 2005-11-18 17:18:26.000000000 +0100 +++ psi-darcs-orig+rc/src/psievent.cpp 2005-11-29 03:24:45.000000000 +0100 @@ -540,11 +540,11 @@ for(EventItem *i; (i = it.current()); ++it) { if ( e == i->event() ) { d->list.remove(i); + emit queueChanged(); return; } } - emit queueChanged(); } PsiEvent *EventQueue::dequeue(const Jid &j, bool compareRes)