--- a/libpurple/keyring.c Fri Jan 10 20:42:26 2014 +0100 +++ b/libpurple/keyring.c Fri Jan 10 20:55:09 2014 +0100 @@ -267,7 +267,9 @@ tracker->read_outstanding--; - if (g_error_matches(error, PURPLE_KEYRING_ERROR, + if (error == NULL) { + /* no error */ + } else if (g_error_matches(error, PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_NOPASSWORD)) { if (purple_debug_is_verbose()) { purple_debug_misc("keyring", "No password found while " @@ -302,7 +304,7 @@ if (tracker->error != NULL) g_error_free(tracker->error); tracker->error = g_error_copy(error); - } else if (error != NULL) { + } else { purple_debug_error("keyring", "Unknown error while changing " "keyring for account %s: %s. Aborting changes.\n", purple_keyring_print_account(account), error->message);