diff --git a/src/calendar/e-cal-backend-ews.c b/src/calendar/e-cal-backend-ews.c
index 5a54db9..c14acd1 100644
--- a/src/calendar/e-cal-backend-ews.c
+++ b/src/calendar/e-cal-backend-ews.c
@@ -4197,6 +4197,16 @@ cal_backend_ews_try_password_sync (ESourceAuthenticator *authenticator,
 		closure->items_deleted = items_deleted;
 		closure->items_updated = items_updated;
 
+		PRIV_LOCK (backend->priv);
+		if (backend->priv->user_email)
+			g_free (backend->priv->user_email);
+		backend->priv->user_email = camel_ews_settings_dup_email (ews_settings);
+
+		if (backend->priv->cnc != NULL)
+			g_object_unref (backend->priv->cnc);
+		backend->priv->cnc = g_object_ref (connection);
+		PRIV_UNLOCK (backend->priv);
+
 		ews_refreshing_inc (backend);
 
 		g_idle_add_full (
@@ -4204,12 +4214,6 @@ cal_backend_ews_try_password_sync (ESourceAuthenticator *authenticator,
 			cal_backend_ews_sync_items_idle_cb, closure,
 			(GDestroyNotify) sync_items_closure_free);
 
-		PRIV_LOCK (backend->priv);
-		if (backend->priv->cnc != NULL)
-			g_object_unref (backend->priv->cnc);
-		backend->priv->cnc = g_object_ref (connection);
-		PRIV_UNLOCK (backend->priv);
-
 		result = E_SOURCE_AUTHENTICATION_ACCEPTED;
 
 	} else {
diff --git a/src/server/e-ews-connection.c b/src/server/e-ews-connection.c
index 09140a1..ff95c71 100644
--- a/src/server/e-ews-connection.c
+++ b/src/server/e-ews-connection.c
@@ -2840,6 +2840,9 @@ e_ews_connection_get_mailbox (EEwsConnection *cnc)
 {
 	g_return_val_if_fail (E_IS_EWS_CONNECTION (cnc), NULL);
 
+	if (!cnc->priv->email || !*cnc->priv->email)
+		return camel_ews_settings_get_email (cnc->priv->settings);
+
 	return cnc->priv->email;
 }
 
