From da16135f08ff62fde4b8c20a043d17b6a4997205 Mon Sep 17 00:00:00 2001
From: Chenthill Palanisamy <pchenthill@novell.com>
Date: Mon, 9 Nov 2009 12:40:34 +0530
Subject: Bug #557613 -  evolution crashed with SIGSEGV in try_open_e_book_cb()

---
 mail/em-utils.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/mail/em-utils.c b/mail/em-utils.c
index 0eab5f6fac..4f264955bd 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -1665,9 +1665,10 @@ try_open_e_book (EBook *book, gboolean only_if_exists, GError **error)
 	if (canceled) {
 		g_clear_error (error);
 		g_set_error (error, E_BOOK_ERROR, E_BOOK_ERROR_CANCELLED, "Operation has been canceled.");
-		e_book_cancel_async_op (book, NULL);
-		/* it had been canceled, the above callback may not be called, thus setting flag here */
-		e_flag_set (flag);
+		/* if the operation is cancelled sucessfully set the flag else wait. file, groupwise,.. backend's operations
+		   are not cancellable */
+		if (e_book_cancel_async_op (book, NULL))
+			e_flag_set (flag);
 	}
 
 	e_flag_wait (flag);
-- 
cgit