diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java index e5ff35218..f697b7378 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusSelectorBox.java @@ -150,7 +150,7 @@ public void actionPerformed(ActionEvent e) { } setSelectedStatus(status); } - else { + else if (status.isOnline()){ lastSelectedStatus = status; loginManager.login(protocolProvider); } diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java index f474dfede..a9717e963 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/SimpleStatusSelectorBox.java @@ -116,15 +116,18 @@ public void actionPerformed(ActionEvent e) } } else { - try { - mainFrame.getLoginManager() - .setManuallyDisconnected(true); - protocolProvider.unregister(); - } - catch (OperationFailedException e1) { - logger.error("Unable to unregister the protocol provider: " - + protocolProvider - + " due to the following exception: " + e1); + if(protocolProvider.isRegistered()) + { + try { + mainFrame.getLoginManager() + .setManuallyDisconnected(true); + protocolProvider.unregister(); + } + catch (OperationFailedException e1) { + logger.error("Unable to unregister the protocol provider: " + + protocolProvider + + " due to the following exception: " + e1); + } } } }