diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/extensions/keepalive/KeepAliveManager.java b/src/net/java/sip/communicator/impl/protocol/jabber/extensions/keepalive/KeepAliveManager.java index 9a4bef02c..ea56481d7 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/extensions/keepalive/KeepAliveManager.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/extensions/keepalive/KeepAliveManager.java @@ -169,10 +169,14 @@ public void processPacket(Packet packet) if(packet instanceof KeepAliveEvent) { // replay only to server pings, to avoid leak of presence + // skip if this is reply with error (like not supported) + // we can still receive errors, but as this is keep-alive ping + // we don't care for errors, as packets has already done its goal KeepAliveEvent evt = (KeepAliveEvent)packet; if(evt.getFrom() != null && evt.getFrom() - .equals(parentProvider.getAccountID().getService())) + .equals(parentProvider.getAccountID().getService()) + && evt.getError() == null) { parentProvider.getConnection().sendPacket( IQ.createResultIQ(evt));