diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java index f306b8544..6352de04b 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java @@ -1353,7 +1353,22 @@ private void disconnectAndCleanConnection() // that maybe added even if its not connected try { - connection.disconnect(); + OperationSetPersistentPresenceJabberImpl opSet = + (OperationSetPersistentPresenceJabberImpl) + this.getOperationSet(OperationSetPersistentPresence.class); + + Presence unavailablePresence = + new Presence(Presence.Type.unavailable); + + if(opSet != null + && !net.java.sip.communicator.util.StringUtils + .isNullOrEmpty(opSet.getCurrentStatusMessage())) + { + unavailablePresence.setStatus( + opSet.getCurrentStatusMessage()); + } + + connection.disconnect(unavailablePresence); } catch (Exception e) {}