There was a problem IIRC with the signal form of onRequestedPresenceChanged() not the m_globalPresence->requestedPresence(). The onRequestedPresenceChanged() signal doesn't set the presence properly when accounts are disabled in the accounts kcm. Couldn't using m_globalPresence->requestedPresence() cause problems when the requestedPresence() isn't actually what the account is set to? For instance, now, when the currentPresence() is Away and the account presence is Away, the plugin won't activate. If the requestedPresence() was at Not Available and the account moved to its best presence Away, the plugin will activate. So, that's probably an improvement. Do you know why Away was filtered as an originating presence? This doesn't work for the status message plugins because the autoaway plugin doesn't overwrite the status message with the preset away message (if there is one set), and only doesn't overwrite the status message with the preset away message (if there is one set) for Away -only-, as the originating presence.