diff -up evolution-ews-3.12.11/src/addressbook/e-book-backend-ews.c.book-lock-fix evolution-ews-3.12.11/src/addressbook/e-book-backend-ews.c
--- evolution-ews-3.12.11/src/addressbook/e-book-backend-ews.c.book-lock-fix 2014-11-06 14:30:58.000000000 +0100
+++ evolution-ews-3.12.11/src/addressbook/e-book-backend-ews.c 2015-05-15 08:39:14.892519501 +0200
@@ -4149,8 +4149,10 @@ e_book_backend_ews_set_locale (EBookBack
PRIV_LOCK (ebews->priv);
- if (!e_book_sqlite_lock (ebews->priv->summary, EBSQL_LOCK_WRITE, cancellable, error))
+ if (!e_book_sqlite_lock (ebews->priv->summary, EBSQL_LOCK_WRITE, cancellable, error)) {
+ PRIV_UNLOCK (ebews->priv);
return FALSE;
+ }
if (e_book_sqlite_set_locale (ebews->priv->summary, locale, cancellable, error) &&
ebews_bump_revision (ebews, error))
@@ -4163,7 +4165,7 @@ e_book_backend_ews_set_locale (EBookBack
ebews->priv->locale = g_strdup (locale);
}
- PRIV_LOCK (ebews->priv);
+ PRIV_UNLOCK (ebews->priv);
return success;
}