- );
-
- /* Initialize the output parameter: */
- if (cancel)
- *cancel = FALSE;
-
- const gchar *server_account_name = tny_account_get_id (account);
- account_store = TNY_ACCOUNT_STORE(g_object_get_data (G_OBJECT(account),
- "account_store"));
+ );
+
+ /* Get a reference to myself */
+ self = MODEST_TNY_ACCOUNT_STORE (g_object_get_data (G_OBJECT(account), "account_store"));
+ priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
+
+ /* Ensure that we still have this account. It could happen
+ that a set_online was requested *before* removing an
+ account, and due to tinymail emits the get_password
+ function using a g_idle the account could be actually
+ removed *before* this function was really called */
+ url_string = tny_account_get_url_string (account);
+ if (url_string) {
+ TnyAccount *tmp_account;
+
+ tmp_account = tny_account_store_find_account (TNY_ACCOUNT_STORE (self),
+ url_string);
+ g_free (url_string);
+
+ if (!tmp_account) {
+ *cancel = TRUE;
+ return NULL;
+ }
+ g_object_unref (tmp_account);
+ }