[evolution] Miscellaneous cleanups from the account-mgmt branch.



commit e2b6ff7a6c1e1580c26ee0719b349151e8dad6fd
Author: Matthew Barnes <mbarnes redhat com>
Date:   Tue Sep 27 01:13:42 2011 -0400

    Miscellaneous cleanups from the account-mgmt branch.
    
    Reducing diff noise so I can see important changes easier when comparing
    branches.  A few API changes, but nothing that affects functionality.

 .../gui/contact-editor/e-contact-quick-add.c       |    2 +
 .../gui/contact-editor/e-contact-quick-add.h       |   26 ++--
 .../contact-list-editor/e-contact-list-editor.c    |  138 ++++++++++--------
 addressbook/gui/merging/eab-contact-compare.c      |    3 +-
 addressbook/gui/merging/eab-contact-compare.h      |   62 ++++++--
 addressbook/gui/merging/eab-contact-merging.c      |   20 ++-
 addressbook/gui/merging/eab-contact-merging.h      |   15 ++-
 addressbook/gui/widgets/e-addressbook-model.c      |    9 +-
 addressbook/gui/widgets/e-addressbook-model.h      |    6 +-
 addressbook/gui/widgets/e-addressbook-selector.c   |    6 +-
 .../gui/widgets/e-addressbook-table-adapter.c      |    7 +-
 addressbook/gui/widgets/e-addressbook-view.c       |    9 +-
 addressbook/gui/widgets/ea-minicard-view.c         |   19 ++-
 addressbook/gui/widgets/eab-gui-util.c             |   24 ++-
 addressbook/importers/evolution-csv-importer.c     |    9 +-
 addressbook/importers/evolution-ldif-importer.c    |    2 +-
 addressbook/importers/evolution-vcard-importer.c   |    6 +-
 addressbook/util/eab-book-util.c                   |    6 +-
 addressbook/util/eab-book-util.h                   |   23 ++-
 calendar/gui/alarm-notify/alarm-notify.c           |   40 ++++-
 calendar/gui/alarm-notify/alarm-notify.h           |    3 +-
 calendar/gui/alarm-notify/notify-main.c            |   10 +-
 calendar/gui/dialogs/alarm-dialog.h                |    4 +-
 calendar/gui/dialogs/alarm-list-dialog.h           |   10 +-
 calendar/gui/dialogs/comp-editor.c                 |    1 +
 calendar/gui/dialogs/copy-source-dialog.h          |   10 +-
 calendar/gui/dialogs/e-delegate-dialog.c           |    7 +-
 calendar/gui/dialogs/e-delegate-dialog.h           |   81 ++++++-----
 calendar/gui/dialogs/e-send-options-utils.c        |    1 +
 calendar/gui/dialogs/event-editor.c                |    5 +-
 calendar/gui/dialogs/event-page.c                  |   14 +-
 calendar/gui/dialogs/select-source-dialog.h        |    4 +-
 calendar/gui/dialogs/task-editor.c                 |    5 +-
 calendar/gui/dialogs/task-page.c                   |   11 +-
 calendar/gui/e-cal-model-calendar.c                |    6 +-
 calendar/gui/e-cal-model.c                         |  111 +++++++++++++-
 calendar/gui/e-cal-model.h                         |    4 +
 calendar/gui/e-calendar-selector.c                 |   41 +----
 calendar/gui/e-calendar-view.c                     |  156 +++++++------------
 calendar/gui/e-calendar-view.h                     |   12 +-
 calendar/gui/e-day-view.c                          |   66 ++++++---
 calendar/gui/e-meeting-store.c                     |    4 +-
 calendar/gui/e-memo-list-selector.c                |   37 +----
 calendar/gui/e-task-list-selector.c                |   37 +----
 calendar/gui/e-task-table.c                        |    5 +-
 calendar/gui/e-week-view.c                         |   10 +-
 calendar/gui/gnome-cal.c                           |   52 ++++----
 calendar/importers/icalendar-importer.c            |    5 +-
 capplet/settings/mail-capplet-shell.c              |    2 +-
 composer/e-composer-from-header.h                  |    4 +-
 composer/e-composer-header-table.h                 |    5 +-
 composer/e-composer-header.c                       |   48 ++++---
 composer/e-composer-header.h                       |    2 +-
 composer/e-composer-name-header.c                  |   10 +-
 composer/e-composer-name-header.h                  |    5 +-
 composer/e-composer-post-header.h                  |    2 +-
 composer/e-composer-private.c                      |    5 +-
 composer/e-composer-text-header.c                  |   18 ++-
 composer/e-composer-text-header.h                  |   12 +-
 composer/e-msg-composer.c                          |   19 ++-
 composer/e-msg-composer.h                          |    2 +-
 doc/reference/shell/tmpl/e-attachment-store.sgml   |    1 +
 e-util/e-marshal.list                              |    1 +
 mail/e-mail-backend.c                              |   14 +-
 mail/e-mail-migrate.c                              |   12 +-
 mail/e-mail-reader-utils.c                         |    5 +-
 mail/e-mail-session-utils.c                        |    8 +-
 mail/e-mail-session.c                              |   13 ++-
 mail/e-mail-store.c                                |   76 ++++++----
 mail/e-mail-store.h                                |   14 +-
 mail/em-account-editor.c                           |    4 +-
 mail/em-composer-utils.c                           |   51 +++----
 mail/em-composer-utils.h                           |    6 +-
 mail/em-folder-tree-model.c                        |    9 +-
 mail/em-folder-tree.c                              |    4 +-
 mail/em-subscription-editor.c                      |   59 ++++----
 mail/em-subscription-editor.h                      |    5 +-
 mail/em-utils.c                                    |    9 +-
 mail/mail-folder-cache.c                           |    4 +-
 mail/mail-ops.c                                    |   36 +++--
 mail/mail-ops.h                                    |    2 +-
 mail/mail-send-recv.c                              |   96 ++++++++-----
 mail/mail-send-recv.h                              |    8 +-
 mail/mail-vfolder.c                                |    2 +-
 mail/message-list.c                                |    2 +-
 modules/mail/e-mail-shell-backend.c                |   12 +-
 modules/mail/e-mail-shell-view-actions.c           |   18 +--
 modules/mail/e-mail-shell-view-private.c           |   16 +-
 modules/mail/em-account-prefs.c                    |   22 +--
 modules/mail/em-composer-prefs.c                   |   33 +++--
 modules/mail/em-composer-prefs.h                   |    4 +-
 plugins/default-source/default-source.c            |    7 +-
 plugins/mail-notification/mail-notification.c      |    1 -
 plugins/mail-to-task/mail-to-task.c                |    6 +-
 plugins/pst-import/pst-importer.c                  |   27 +++-
 plugins/vcard-inline/vcard-inline.c                |   15 +-
 shell/e-shell.c                                    |   11 +-
 smime/gui/component.c                              |   16 +-
 smime/lib/e-pkcs12.c                               |    7 +-
 widgets/misc/e-account-tree-view.c                 |   32 +++--
 widgets/misc/e-attachment-store.c                  |   11 +-
 101 files changed, 1110 insertions(+), 847 deletions(-)
---
diff --git a/addressbook/gui/contact-editor/e-contact-quick-add.c b/addressbook/gui/contact-editor/e-contact-quick-add.c
index 96af36f..3595437 100644
--- a/addressbook/gui/contact-editor/e-contact-quick-add.c
+++ b/addressbook/gui/contact-editor/e-contact-quick-add.c
@@ -411,6 +411,7 @@ source_changed (ESourceComboBox *source_combo_box,
 	ESource *source;
 
 	source = e_source_combo_box_get_active (source_combo_box);
+
 	if (source != NULL) {
 		if (qa->source != NULL)
 			g_object_unref (qa->source);
@@ -472,6 +473,7 @@ build_quick_add_dialog (QuickAdd *qa)
 		gconf_client, "/apps/evolution/addressbook/sources");
 	source = e_source_list_peek_default_source (qa->source_list);
 	g_object_unref (gconf_client);
+
 	qa->combo_box = e_source_combo_box_new (qa->source_list);
 	e_source_combo_box_set_active (
 		E_SOURCE_COMBO_BOX (qa->combo_box), source);
diff --git a/addressbook/gui/contact-editor/e-contact-quick-add.h b/addressbook/gui/contact-editor/e-contact-quick-add.h
index a4d06ef..861ddba 100644
--- a/addressbook/gui/contact-editor/e-contact-quick-add.h
+++ b/addressbook/gui/contact-editor/e-contact-quick-add.h
@@ -25,16 +25,22 @@
 
 #include <libebook/e-contact.h>
 
-typedef void (*EContactQuickAddCallback) (EContact *new_contact, gpointer closure);
-
-void e_contact_quick_add (const gchar *name, const gchar *email,
-			  EContactQuickAddCallback cb, gpointer closure);
-
-void e_contact_quick_add_free_form (const gchar *text, EContactQuickAddCallback cb, gpointer closure);
-
-void e_contact_quick_add_email (const gchar *email, EContactQuickAddCallback cb, gpointer closure);
-
-void e_contact_quick_add_vcard (const gchar *vcard, EContactQuickAddCallback cb, gpointer closure);
+typedef void	(*EContactQuickAddCallback)	(EContact *new_contact,
+						 gpointer closure);
+
+void		e_contact_quick_add		(const gchar *name,
+						 const gchar *email,
+						 EContactQuickAddCallback cb,
+						 gpointer closure);
+void		e_contact_quick_add_free_form	(const gchar *text,
+						 EContactQuickAddCallback cb,
+						 gpointer closure);
+void		e_contact_quick_add_email	(const gchar *email,
+						 EContactQuickAddCallback cb,
+						 gpointer closure);
+void		e_contact_quick_add_vcard	(const gchar *vcard,
+						 EContactQuickAddCallback cb,
+						 gpointer closure);
 
 #endif /* __E_CONTACT_QUICK_ADD_H__ */
 
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
index 1750f5a..d6a373a 100644
--- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c
+++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
@@ -49,6 +49,10 @@
 #include "e-contact-list-model.h"
 #include "eab-contact-merging.h"
 
+#define E_CONTACT_LIST_EDITOR_GET_PRIVATE(obj) \
+	(G_TYPE_INSTANCE_GET_PRIVATE \
+	((obj), E_TYPE_CONTACT_LIST_EDITOR, EContactListEditorPrivate))
+
 #define CONTACT_LIST_EDITOR_WIDGET(editor, name) \
 	(e_builder_get_widget \
 	(E_CONTACT_LIST_EDITOR (editor)->priv->builder, name))
@@ -1341,6 +1345,76 @@ contact_list_editor_dispose (GObject *object)
 	G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
+static void
+contact_list_editor_constructed (GObject *object)
+{
+	EContactListEditor *editor;
+	GtkTreeViewColumn *column;
+	GtkCellRenderer *renderer;
+	GtkTreeView *view;
+	GtkTreeSelection *selection;
+
+	editor = E_CONTACT_LIST_EDITOR (object);
+
+	/* Chain up to parent's constructed() method. */
+	G_OBJECT_CLASS (parent_class)->constructed (object);
+
+	editor->priv->editable = TRUE;
+	editor->priv->allows_contact_lists = TRUE;
+
+	editor->priv->builder = gtk_builder_new ();
+	e_load_ui_builder_definition (
+		editor->priv->builder, "contact-list-editor.ui");
+	gtk_builder_connect_signals (editor->priv->builder, NULL);
+
+	/* Embed a pointer to the EContactListEditor in the top-level
+	 * widget.  Signal handlers can then access the pointer from any
+	 * child widget by calling contact_list_editor_extract(widget). */
+	g_object_set_data (G_OBJECT (WIDGET (DIALOG)), TOPLEVEL_KEY, editor);
+
+	view = GTK_TREE_VIEW (WIDGET (TREE_VIEW));
+	editor->priv->model = e_contact_list_model_new ();
+	gtk_tree_view_set_model (view, editor->priv->model);
+
+	selection = gtk_tree_view_get_selection (view);
+	gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
+	g_signal_connect (selection, "changed",
+		G_CALLBACK (contact_list_editor_selection_changed_cb), editor);
+
+	gtk_tree_view_enable_model_drag_dest (view, NULL, 0, GDK_ACTION_LINK);
+	e_drag_dest_add_directory_targets (WIDGET (TREE_VIEW));
+	gtk_drag_dest_add_text_targets (WIDGET (TREE_VIEW));
+
+	column = gtk_tree_view_column_new ();
+	renderer = gtk_cell_renderer_text_new ();
+	g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+	gtk_tree_view_column_pack_start (column, renderer, TRUE);
+	gtk_tree_view_append_column (view, column);
+
+	gtk_tree_view_column_set_cell_data_func (
+		column, renderer, (GtkTreeCellDataFunc)
+		contact_list_editor_render_destination, NULL, NULL);
+
+	editor->priv->name_selector = e_name_selector_new ();
+
+	e_name_selector_model_add_section (
+		e_name_selector_peek_model (editor->priv->name_selector),
+		"Members", _("_Members"), NULL);
+
+	g_signal_connect (
+		editor, "notify::book",
+		G_CALLBACK (contact_list_editor_notify_cb), NULL);
+	g_signal_connect (
+		editor, "notify::editable",
+		G_CALLBACK (contact_list_editor_notify_cb), NULL);
+
+	gtk_widget_show_all (WIDGET (DIALOG));
+
+	setup_custom_widgets (editor);
+
+	e_name_selector_load_books (editor->priv->name_selector);
+}
+
 /**************************** EABEditor Callbacks ****************************/
 
 static void
@@ -1492,6 +1566,7 @@ contact_list_editor_class_init (EContactListEditorClass *class)
 	object_class->set_property = contact_list_editor_set_property;
 	object_class->get_property = contact_list_editor_get_property;
 	object_class->dispose = contact_list_editor_dispose;
+	object_class->constructed = contact_list_editor_constructed;
 
 	editor_class = EAB_EDITOR_CLASS (class);
 	editor_class->show = contact_list_editor_show;
@@ -1550,68 +1625,7 @@ contact_list_editor_class_init (EContactListEditorClass *class)
 static void
 contact_list_editor_init (EContactListEditor *editor)
 {
-	EContactListEditorPrivate *priv;
-	GtkTreeViewColumn *column;
-	GtkCellRenderer *renderer;
-	GtkTreeView *view;
-	GtkTreeSelection *selection;
-
-	editor->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (
-		editor, E_TYPE_CONTACT_LIST_EDITOR, EContactListEditorPrivate);
-
-	priv->editable = TRUE;
-	priv->allows_contact_lists = TRUE;
-
-	priv->builder = gtk_builder_new ();
-	e_load_ui_builder_definition (priv->builder, "contact-list-editor.ui");
-	gtk_builder_connect_signals (priv->builder, NULL);
-
-	/* Embed a pointer to the EContactListEditor in the top-level
-	 * widget.  Signal handlers can then access the pointer from any
-	 * child widget by calling contact_list_editor_extract(widget). */
-	g_object_set_data (G_OBJECT (WIDGET (DIALOG)), TOPLEVEL_KEY, editor);
-
-	view = GTK_TREE_VIEW (WIDGET (TREE_VIEW));
-	priv->model = e_contact_list_model_new ();
-	gtk_tree_view_set_model (view, priv->model);
-
-	selection = gtk_tree_view_get_selection (view);
-	gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
-	g_signal_connect (selection, "changed",
-		G_CALLBACK (contact_list_editor_selection_changed_cb), editor);
-
-	gtk_tree_view_enable_model_drag_dest (view, NULL, 0, GDK_ACTION_LINK);
-	e_drag_dest_add_directory_targets (WIDGET (TREE_VIEW));
-	gtk_drag_dest_add_text_targets (WIDGET (TREE_VIEW));
-
-	column = gtk_tree_view_column_new ();
-	renderer = gtk_cell_renderer_text_new ();
-	g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
-	gtk_tree_view_column_pack_start (column, renderer, TRUE);
-	gtk_tree_view_append_column (view, column);
-
-	gtk_tree_view_column_set_cell_data_func (
-		column, renderer, (GtkTreeCellDataFunc)
-		contact_list_editor_render_destination, NULL, NULL);
-
-	priv->name_selector = e_name_selector_new ();
-
-	e_name_selector_model_add_section (
-		e_name_selector_peek_model (priv->name_selector),
-		"Members", _("_Members"), NULL);
-
-	g_signal_connect (
-		editor, "notify::book",
-		G_CALLBACK (contact_list_editor_notify_cb), NULL);
-	g_signal_connect (
-		editor, "notify::editable",
-		G_CALLBACK (contact_list_editor_notify_cb), NULL);
-
-	gtk_widget_show_all (WIDGET (DIALOG));
-
-	setup_custom_widgets (editor);
-
-	e_name_selector_load_books (priv->name_selector);
+	editor->priv = E_CONTACT_LIST_EDITOR_GET_PRIVATE (editor);
 }
 
 /***************************** Public Interface ******************************/
diff --git a/addressbook/gui/merging/eab-contact-compare.c b/addressbook/gui/merging/eab-contact-compare.c
index a25ad4e..231a142 100644
--- a/addressbook/gui/merging/eab-contact-compare.c
+++ b/addressbook/gui/merging/eab-contact-compare.c
@@ -834,7 +834,8 @@ eab_contact_locate_match_full (EBookClient *book_client,
 
 	source = e_source_list_peek_default_source (info->source_list);
 
-	e_client_utils_open_new (source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL,
+	e_client_utils_open_new (
+		source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL,
 		e_client_utils_authenticate_handler, NULL,
 		book_loaded_cb, info);
 }
diff --git a/addressbook/gui/merging/eab-contact-compare.h b/addressbook/gui/merging/eab-contact-compare.h
index 7ce31ed..8c07a56 100644
--- a/addressbook/gui/merging/eab-contact-compare.h
+++ b/addressbook/gui/merging/eab-contact-compare.h
@@ -26,8 +26,8 @@
 #ifndef __EAB_CONTACT_COMPARE_H__
 #define __EAB_CONTACT_COMPARE_H__
 
-#include <libebook/e-book-client.h>
 #include <libebook/e-contact.h>
+#include <libebook/e-book-client.h>
 
 typedef enum {
 	EAB_CONTACT_MATCH_NOT_APPLICABLE = 0,
@@ -45,26 +45,56 @@ typedef enum {
 	EAB_CONTACT_MATCH_PART_FAMILY_NAME      = 1 << 3
 } EABContactMatchPart;
 
-typedef void (*EABContactMatchQueryCallback) (EContact *contact, EContact *match, EABContactMatchType type, gpointer closure);
+typedef void	(*EABContactMatchQueryCallback)	(EContact *contact,
+						 EContact *match,
+						 EABContactMatchType type,
+						 gpointer closure);
 
-EABContactMatchType eab_contact_compare_name_to_string      (EContact *contact, const gchar *str);
+EABContactMatchType
+		eab_contact_compare_name_to_string
+						(EContact *contact,
+						 const gchar *str);
 
-EABContactMatchType eab_contact_compare_name_to_string_full (EContact *contact, const gchar *str,
-							     gboolean allow_partial_matches,
-							     gint *matched_parts, EABContactMatchPart *first_matched_part,
-							     gint *matched_character_count);
+EABContactMatchType
+		eab_contact_compare_name_to_string_full
+						(EContact *contact,
+						 const gchar *str,
+						 gboolean allow_partial_matches,
+						 gint *matched_parts,
+						 EABContactMatchPart *first_matched_part,
+						 gint *matched_character_count);
 
-EABContactMatchType eab_contact_compare_file_as   (EContact *contact1, EContact *contact2);
-EABContactMatchType eab_contact_compare_name      (EContact *contact1, EContact *contact2);
-EABContactMatchType eab_contact_compare_nickname  (EContact *contact1, EContact *contact2);
-EABContactMatchType eab_contact_compare_email     (EContact *contact1, EContact *contact2);
-EABContactMatchType eab_contact_compare_address   (EContact *contact1, EContact *contact2);
-EABContactMatchType eab_contact_compare_telephone (EContact *contact1, EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_file_as	(EContact *contact1,
+						 EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_name	(EContact *contact1,
+						 EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_nickname	(EContact *contact1,
+						 EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_email	(EContact *contact1,
+						 EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_address	(EContact *contact1,
+						 EContact *contact2);
+EABContactMatchType
+		eab_contact_compare_telephone	(EContact *contact1,
+						 EContact *contact2);
 
-EABContactMatchType eab_contact_compare           (EContact *contact1, EContact *contact2);
+EABContactMatchType
+		eab_contact_compare		(EContact *contact1,
+						 EContact *contact2);
 
-void                eab_contact_locate_match      (EContact *contact, EABContactMatchQueryCallback cb, gpointer closure);
-void                eab_contact_locate_match_full (EBookClient *book_client, EContact *contact, GList *avoid, EABContactMatchQueryCallback cb, gpointer closure);
+void		eab_contact_locate_match	(EContact *contact,
+						 EABContactMatchQueryCallback cb,
+						 gpointer closure);
+void		eab_contact_locate_match_full	(EBookClient *book_client,
+						 EContact *contact,
+						 GList *avoid,
+						 EABContactMatchQueryCallback cb,
+						 gpointer closure);
 
 #endif /* __E_CONTACT_COMPARE_H__ */
 
diff --git a/addressbook/gui/merging/eab-contact-merging.c b/addressbook/gui/merging/eab-contact-merging.c
index f791eab..1e70b97 100644
--- a/addressbook/gui/merging/eab-contact-merging.c
+++ b/addressbook/gui/merging/eab-contact-merging.c
@@ -73,7 +73,10 @@ add_lookup (EContactMergingLookup *lookup)
 {
 	if (running_merge_requests < SIMULTANEOUS_MERGING_REQUESTS) {
 		running_merge_requests++;
-		eab_contact_locate_match_full (lookup->book_client, lookup->contact, lookup->avoid, match_query_callback, lookup);
+		eab_contact_locate_match_full (
+			lookup->book_client,
+			lookup->contact, lookup->avoid,
+			match_query_callback, lookup);
 	}
 	else {
 		merging_queue = g_list_append (merging_queue, lookup);
@@ -97,8 +100,9 @@ finished_lookup (void)
 
 		running_merge_requests++;
 		eab_contact_locate_match_full (
-			lookup->book_client, lookup->contact,
-			lookup->avoid, match_query_callback, lookup);
+			lookup->book_client,
+			lookup->contact, lookup->avoid,
+			match_query_callback, lookup);
 	}
 }
 
@@ -138,8 +142,8 @@ final_cb_as_id (EBookClient *book_client,
 
 	if (lookup->id_cb)
 		lookup->id_cb (
-			lookup->book_client, error,
-			lookup->contact ?
+			lookup->book_client,
+			error, lookup->contact ?
 				e_contact_get_const (
 				lookup->contact, E_CONTACT_UID) : NULL,
 			lookup->closure);
@@ -566,7 +570,11 @@ match_query_callback (EContact *contact,
 
 	if (lookup->op == E_CONTACT_MERGING_FIND) {
 		if (lookup->c_cb)
-			lookup->c_cb (lookup->book_client, NULL, (gint) type <= (gint) EAB_CONTACT_MATCH_VAGUE ? NULL : match, lookup->closure);
+			lookup->c_cb (
+				lookup->book_client, NULL,
+				(gint) type <= (gint)
+				EAB_CONTACT_MATCH_VAGUE ? NULL : match,
+				lookup->closure);
 
 		free_lookup (lookup);
 		finished_lookup ();
diff --git a/addressbook/gui/merging/eab-contact-merging.h b/addressbook/gui/merging/eab-contact-merging.h
index c8e2ddb..a922d6b 100644
--- a/addressbook/gui/merging/eab-contact-merging.h
+++ b/addressbook/gui/merging/eab-contact-merging.h
@@ -30,9 +30,18 @@
 
 G_BEGIN_DECLS
 
-typedef void (*EABMergingAsyncCallback)		(EBookClient *book_client, const GError *error, gpointer closure);
-typedef void (*EABMergingIdAsyncCallback)	(EBookClient *book_client, const GError *error, const gchar *id, gpointer closure);
-typedef void (*EABMergingContactAsyncCallback)	(EBookClient *book_client, const GError *error, EContact *contact, gpointer closure);
+typedef void	(*EABMergingAsyncCallback)	(EBookClient *book_client,
+						 const GError *error,
+						 gpointer closure);
+typedef void	(*EABMergingIdAsyncCallback)	(EBookClient *book_client,
+						 const GError *error,
+						 const gchar *id,
+						 gpointer closure);
+typedef void	(*EABMergingContactAsyncCallback)
+						(EBookClient *book_client,
+						 const GError *error,
+						 EContact *contact,
+						 gpointer closure);
 
 gboolean	eab_merging_book_add_contact	(EBookClient *book_client,
 						 EContact *contact,
diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c
index 74e794b..fa61c4e 100644
--- a/addressbook/gui/widgets/e-addressbook-model.c
+++ b/addressbook/gui/widgets/e-addressbook-model.c
@@ -576,7 +576,8 @@ addressbook_model_class_init (EAddressbookModelClass *class)
 			"EBookClient",
 			NULL,
 			E_TYPE_BOOK_CLIENT,
-			G_PARAM_READWRITE));
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
 
 	g_object_class_install_property (
 		object_class,
@@ -586,7 +587,8 @@ addressbook_model_class_init (EAddressbookModelClass *class)
 			"Editable",
 			NULL,
 			FALSE,
-			G_PARAM_READWRITE));
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
 
 	g_object_class_install_property (
 		object_class,
@@ -597,7 +599,8 @@ addressbook_model_class_init (EAddressbookModelClass *class)
 			NULL,
 			NULL,
 			G_PARAM_READWRITE |
-			G_PARAM_CONSTRUCT));
+			G_PARAM_CONSTRUCT |
+			G_PARAM_STATIC_STRINGS));
 
 	signals[WRITABLE_STATUS] =
 		g_signal_new ("writable_status",
diff --git a/addressbook/gui/widgets/e-addressbook-model.h b/addressbook/gui/widgets/e-addressbook-model.h
index 13d23e9..680352c 100644
--- a/addressbook/gui/widgets/e-addressbook-model.h
+++ b/addressbook/gui/widgets/e-addressbook-model.h
@@ -104,8 +104,10 @@ gint		e_addressbook_model_find	(EAddressbookModel *model,
 EBookClient *	e_addressbook_model_get_client	(EAddressbookModel *model);
 void		e_addressbook_model_set_client	(EAddressbookModel *model,
 						 EBookClient *book_client);
-gboolean	e_addressbook_model_get_editable (EAddressbookModel *model);
-void		e_addressbook_model_set_editable (EAddressbookModel *model,
+gboolean	e_addressbook_model_get_editable
+						(EAddressbookModel *model);
+void		e_addressbook_model_set_editable
+						(EAddressbookModel *model,
 						 gboolean editable);
 gchar *		e_addressbook_model_get_query	(EAddressbookModel *model);
 void		e_addressbook_model_set_query	(EAddressbookModel *model,
diff --git a/addressbook/gui/widgets/e-addressbook-selector.c b/addressbook/gui/widgets/e-addressbook-selector.c
index b6bfa01..30bb889 100644
--- a/addressbook/gui/widgets/e-addressbook-selector.c
+++ b/addressbook/gui/widgets/e-addressbook-selector.c
@@ -293,7 +293,8 @@ target_client_open_ready_cb (GObject *source_object,
 	}
 
 	eab_merging_book_add_contact (
-		merge_context->target_client, merge_context->current_contact,
+		merge_context->target_client,
+		merge_context->current_contact,
 		addressbook_selector_merge_next_cb, merge_context);
 }
 
@@ -335,7 +336,8 @@ addressbook_selector_data_dropped (ESourceSelector *selector,
 	merge_context->remove_from_source = remove_from_source;
 	merge_context->pending_adds = TRUE;
 
-	e_client_utils_open_new (destination, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL,
+	e_client_utils_open_new (
+		destination, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL,
 		e_client_utils_authenticate_handler, NULL,
 		target_client_open_ready_cb, merge_context);
 
diff --git a/addressbook/gui/widgets/e-addressbook-table-adapter.c b/addressbook/gui/widgets/e-addressbook-table-adapter.c
index f102b68..463bdc7 100644
--- a/addressbook/gui/widgets/e-addressbook-table-adapter.c
+++ b/addressbook/gui/widgets/e-addressbook-table-adapter.c
@@ -168,8 +168,11 @@ addressbook_set_value_at (ETableModel *etc,
 	EAddressbookTableAdapterPrivate *priv = adapter->priv;
 
 	if (e_addressbook_model_get_editable (priv->model)) {
+		EBookClient *book_client;
 		EContact *contact;
 
+		book_client = e_addressbook_model_get_client (priv->model);
+
 		if (col >= COLS || row >= e_addressbook_model_contact_count (priv->model))
 			return;
 
@@ -191,7 +194,7 @@ addressbook_set_value_at (ETableModel *etc,
 
 		e_contact_set (contact, col, (gpointer) val);
 		eab_merging_book_modify_contact (
-			e_addressbook_model_get_client (priv->model),
+			book_client,
 			contact, contact_modified_cb, etc);
 
 		g_object_unref (contact);
@@ -218,8 +221,8 @@ addressbook_append_row (ETableModel *etm,
 {
 	EAddressbookTableAdapter *adapter = EAB_TABLE_ADAPTER (etm);
 	EAddressbookTableAdapterPrivate *priv = adapter->priv;
-	EContact *contact;
 	EBookClient *book_client;
+	EContact *contact;
 	gint col;
 
 	contact = e_contact_new ();
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index 7f3a7a8..9bda90a 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -1111,7 +1111,7 @@ folder_bar_message (EAddressbookView *view,
 {
 	EShellView *shell_view;
 	EShellSidebar *shell_sidebar;
-	const gchar *name;
+	const gchar *display_name;
 
 	shell_view = e_addressbook_view_get_shell_view (view);
 	shell_sidebar = e_shell_view_get_shell_sidebar (shell_view);
@@ -1119,8 +1119,8 @@ folder_bar_message (EAddressbookView *view,
 	if (view->priv->source == NULL)
 		return;
 
-	name = e_source_peek_name (view->priv->source);
-	e_shell_sidebar_set_primary_text (shell_sidebar, name);
+	display_name = e_source_peek_name (view->priv->source);
+	e_shell_sidebar_set_primary_text (shell_sidebar, display_name);
 	e_shell_sidebar_set_secondary_text (shell_sidebar, message);
 }
 
@@ -1622,7 +1622,8 @@ view_transfer_contacts (EAddressbookView *view,
 		contacts = e_addressbook_view_get_selected (view);
 
 		eab_transfer_contacts (
-			book_client, contacts, delete_from_source, alert_sink);
+			book_client, contacts,
+			delete_from_source, alert_sink);
 	}
 }
 
diff --git a/addressbook/gui/widgets/ea-minicard-view.c b/addressbook/gui/widgets/ea-minicard-view.c
index 58d3a5f..6772a0b 100644
--- a/addressbook/gui/widgets/ea-minicard-view.c
+++ b/addressbook/gui/widgets/ea-minicard-view.c
@@ -149,7 +149,8 @@ ea_minicard_view_get_name (AtkObject *accessible)
 	gchar *string;
 	EMinicardView *card_view;
 	EBookClient *book_client = NULL;
-	const gchar *source_name;
+	ESource *source;
+	const gchar *display_name;
 
 	g_return_val_if_fail (EA_IS_MINICARD_VIEW (accessible), NULL);
 
@@ -163,13 +164,14 @@ ea_minicard_view_get_name (AtkObject *accessible)
 	card_view = E_MINICARD_VIEW (reflow);
 	g_object_get (card_view->adapter, "client", &book_client, NULL);
 	g_return_val_if_fail (E_IS_BOOK_CLIENT (book_client), NULL);
-	source_name = e_source_peek_name (e_client_get_source (E_CLIENT (book_client)));
-	if (!source_name)
-		source_name="";
+	source = e_client_get_source (E_CLIENT (book_client));
+	display_name = e_source_peek_name (source);
+	if (display_name == NULL)
+		display_name = "";
 
 	string = g_strdup_printf (ngettext ("current address book folder %s has %d card",
 				  "current address book folder %s has %d cards",
-				  reflow->count), source_name, reflow->count);
+				  reflow->count), display_name, reflow->count);
 
 	ATK_OBJECT_CLASS (parent_class)->set_name (accessible, string);
 	g_free (string);
@@ -372,7 +374,9 @@ static void atk_action_interface_init (AtkActionIface *iface)
 	iface->get_name = atk_action_interface_get_name;
 }
 
-static gboolean atk_action_interface_do_action (AtkAction *action, gint i)
+static gboolean
+atk_action_interface_do_action (AtkAction *action,
+                                gint i)
 {
 	gboolean return_value = TRUE;
 	EMinicardView *card_view;
@@ -405,7 +409,8 @@ static gboolean atk_action_interface_do_action (AtkAction *action, gint i)
 	return return_value;
 }
 
-static gint atk_action_interface_get_n_action (AtkAction *iface)
+static gint
+atk_action_interface_get_n_action (AtkAction *iface)
 {
 	return G_N_ELEMENTS (action_name);
 }
diff --git a/addressbook/gui/widgets/eab-gui-util.c b/addressbook/gui/widgets/eab-gui-util.c
index c951b29..00f4e88 100644
--- a/addressbook/gui/widgets/eab-gui-util.c
+++ b/addressbook/gui/widgets/eab-gui-util.c
@@ -34,13 +34,13 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
+#include <libebook/e-destination.h>
 #include <libedataserver/e-data-server-util.h>
 #include <libedataserverui/e-client-utils.h>
 #include <libedataserverui/e-source-selector.h>
 #include <e-util/e-util.h>
 #include "eab-gui-util.h"
 #include "util/eab-book-util.h"
-#include <libebook/e-destination.h>
 #include "e-util/e-alert-dialog.h"
 #include "e-util/e-html-utils.h"
 #include "shell/e-shell.h"
@@ -319,14 +319,18 @@ eab_select_source (ESource *except_source,
 	selector = e_source_selector_new (source_list);
 	e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE);
 	if (except_source)
-		g_object_set_data (G_OBJECT (ok_button), "except-source", e_source_list_peek_source_by_uid (source_list, e_source_peek_uid (except_source)));
-	g_signal_connect (selector, "primary_selection_changed",
-			  G_CALLBACK (source_selection_changed_cb), ok_button);
+		g_object_set_data (
+			G_OBJECT (ok_button), "except-source",
+			e_source_list_peek_source_by_uid (source_list, e_source_peek_uid (except_source)));
+	g_signal_connect (
+		selector, "primary_selection_changed",
+		G_CALLBACK (source_selection_changed_cb), ok_button);
 
 	if (select_uid) {
 		source = e_source_list_peek_source_by_uid (source_list, select_uid);
 		if (source)
-			e_source_selector_set_primary_selection (E_SOURCE_SELECTOR (selector), source);
+			e_source_selector_set_primary_selection (
+				E_SOURCE_SELECTOR (selector), source);
 	}
 
 	scrolled_window = gtk_scrolled_window_new (NULL, NULL);
@@ -493,7 +497,9 @@ do_copy (gpointer data,
 	book_client = process->destination;
 
 	process->count++;
-	eab_merging_book_add_contact (book_client, contact, contact_added_cb, process);
+	eab_merging_book_add_contact (
+		book_client,
+		contact, contact_added_cb, process);
 }
 
 static void
@@ -533,6 +539,7 @@ eab_transfer_contacts (EBookClient *source_client,
                        gboolean delete_from_source,
                        EAlertSink *alert_sink)
 {
+	ESource *source;
 	ESource *destination;
 	static gchar *last_uid = NULL;
 	ContactCopyProcess *process;
@@ -559,9 +566,10 @@ eab_transfer_contacts (EBookClient *source_client,
 			desc = _("Copy contacts to");
 	}
 
+	source = e_client_get_source (E_CLIENT (source_client));
+
 	destination = eab_select_source (
-		e_client_get_source (E_CLIENT (source_client)),
-		desc, NULL, last_uid, window);
+		source, desc, NULL, last_uid, window);
 
 	if (!destination)
 		return;
diff --git a/addressbook/importers/evolution-csv-importer.c b/addressbook/importers/evolution-csv-importer.c
index f41a806..20d0209 100644
--- a/addressbook/importers/evolution-csv-importer.c
+++ b/addressbook/importers/evolution-csv-importer.c
@@ -40,7 +40,7 @@
 
 #include <libebook/e-destination.h>
 
-#include "e-util/e-import.h"
+#include <e-util/e-import.h>
 
 #include "evolution-addressbook-importers.h"
 
@@ -784,9 +784,12 @@ csv_getwidget (EImport *ei,
 	if (primary == NULL) {
 		primary = e_source_list_peek_source_any (source_list);
 		g_object_ref (primary);
-		g_datalist_set_data_full(&target->data, "csv-source", primary, g_object_unref);
+		g_datalist_set_data_full (
+			&target->data, "csv-source", primary,
+			(GDestroyNotify) g_object_unref);
 	}
-	e_source_selector_set_primary_selection (E_SOURCE_SELECTOR (selector), primary);
+	e_source_selector_set_primary_selection (
+		E_SOURCE_SELECTOR (selector), primary);
 	g_object_unref (source_list);
 
 	g_signal_connect (
diff --git a/addressbook/importers/evolution-ldif-importer.c b/addressbook/importers/evolution-ldif-importer.c
index 8eb0c57..989bb80 100644
--- a/addressbook/importers/evolution-ldif-importer.c
+++ b/addressbook/importers/evolution-ldif-importer.c
@@ -47,7 +47,7 @@
 
 #include <libebook/e-destination.h>
 
-#include "e-util/e-import.h"
+#include <e-util/e-import.h>
 
 #include "evolution-addressbook-importers.h"
 
diff --git a/addressbook/importers/evolution-vcard-importer.c b/addressbook/importers/evolution-vcard-importer.c
index cf3a429..be97f25 100644
--- a/addressbook/importers/evolution-vcard-importer.c
+++ b/addressbook/importers/evolution-vcard-importer.c
@@ -42,9 +42,9 @@
 #include <util/eab-book-util.h>
 #include <libebook/e-destination.h>
 
-#include "e-util/e-import.h"
-#include "e-util/e-datetime-format.h"
-#include "misc/e-web-view-preview.h"
+#include <e-util/e-import.h>
+#include <e-util/e-datetime-format.h>
+#include <misc/e-web-view-preview.h>
 
 #include "evolution-addressbook-importers.h"
 
diff --git a/addressbook/util/eab-book-util.c b/addressbook/util/eab-book-util.c
index 5c8d335..9839e51 100644
--- a/addressbook/util/eab-book-util.c
+++ b/addressbook/util/eab-book-util.c
@@ -180,7 +180,7 @@ eab_book_and_contact_list_from_string (const gchar *str,
 	*book_client = e_book_client_new_from_uri (uri, NULL);
 	g_free (uri);
 
-	return *book_client ? TRUE : FALSE;
+	return (*book_client != NULL);
 }
 
 gchar *
@@ -193,11 +193,11 @@ eab_book_and_contact_list_to_string (EBookClient *book_client,
 	if (!s0)
 		s0 = g_strdup ("");
 
-	if (book_client)
+	if (book_client != NULL) {
 		s1 = g_strconcat (
 			"Book: ", e_client_get_uri (
 			E_CLIENT (book_client)), "\r\n", s0, NULL);
-	else
+	} else
 		s1 = g_strdup (s0);
 
 	g_free (s0);
diff --git a/addressbook/util/eab-book-util.h b/addressbook/util/eab-book-util.h
index 602e7bd..4376863 100644
--- a/addressbook/util/eab-book-util.h
+++ b/addressbook/util/eab-book-util.h
@@ -28,14 +28,21 @@
 
 G_BEGIN_DECLS
 
-GSList *	eab_contact_list_from_string		(const gchar *str);
-gchar *		eab_contact_list_to_string		(const GSList *contacts);
-
-gboolean	eab_book_and_contact_list_from_string	(const gchar *str, EBookClient **book_client, GSList **contacts);
-gchar *		eab_book_and_contact_list_to_string	(EBookClient *book_client, const GSList *contacts);
-
-gint		e_utf8_casefold_collate_len		(const gchar *str1, const gchar *str2, gint len);
-gint		e_utf8_casefold_collate			(const gchar *str1, const gchar *str2);
+GSList *	eab_contact_list_from_string	(const gchar *str);
+gchar *		eab_contact_list_to_string	(const GSList *contacts);
+
+gboolean	eab_book_and_contact_list_from_string
+						(const gchar *str,
+						 EBookClient **book_client,
+						 GSList **contacts);
+gchar *		eab_book_and_contact_list_to_string
+						(EBookClient *book_client,
+						 const GSList *contacts);
+gint		e_utf8_casefold_collate_len	(const gchar *str1,
+						 const gchar *str2,
+						 gint len);
+gint		e_utf8_casefold_collate		(const gchar *str1,
+						 const gchar *str2);
 
 G_END_DECLS
 
diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/gui/alarm-notify/alarm-notify.c
index 3256e39..e612b0c 100644
--- a/calendar/gui/alarm-notify/alarm-notify.c
+++ b/calendar/gui/alarm-notify/alarm-notify.c
@@ -37,6 +37,10 @@
 #include "alarm-queue.h"
 #include "config-data.h"
 
+#define ALARM_NOTIFY_GET_PRIVATE(obj) \
+	(G_TYPE_INSTANCE_GET_PRIVATE \
+	((obj), TYPE_ALARM_NOTIFY, AlarmNotifyPrivate))
+
 #define APPLICATION_ID "org.gnome.EvolutionAlarmNotify"
 
 struct _AlarmNotifyPrivate {
@@ -55,7 +59,13 @@ typedef struct {
 	GList *removals;
 } ProcessRemovalsData;
 
-G_DEFINE_TYPE (AlarmNotify, alarm_notify, GTK_TYPE_APPLICATION)
+/* Forward Declarations */
+static void	alarm_notify_initable_init	(GInitableIface *interface);
+
+G_DEFINE_TYPE_WITH_CODE (
+	AlarmNotify, alarm_notify, GTK_TYPE_APPLICATION,
+	G_IMPLEMENT_INTERFACE (
+		G_TYPE_INITABLE, alarm_notify_initable_init))
 
 static void
 process_removal_in_hash (const gchar *uri,
@@ -212,7 +222,7 @@ alarm_notify_finalize (GObject *object)
 	AlarmNotifyPrivate *priv;
 	gint ii;
 
-	priv = ALARM_NOTIFY (object)->priv;
+	priv = ALARM_NOTIFY_GET_PRIVATE (object);
 
 	for (ii = 0; ii < E_CAL_CLIENT_SOURCE_TYPE_LAST; ii++) {
 		g_hash_table_foreach (
@@ -264,6 +274,15 @@ alarm_notify_activate (GApplication *application)
 	 * if there are no handlers connected to this signal. */
 }
 
+static gboolean
+alarm_notify_initable (GInitable *initable,
+                       GCancellable *cancellable,
+                       GError **error)
+{
+	/* XXX Just return TRUE for now.  We'll have use for this soon. */
+	return TRUE;
+}
+
 static void
 alarm_notify_class_init (AlarmNotifyClass *class)
 {
@@ -281,12 +300,18 @@ alarm_notify_class_init (AlarmNotifyClass *class)
 }
 
 static void
+alarm_notify_initable_init (GInitableIface *interface)
+{
+	/* XXX Awkward name since we're missing an 'E' prefix. */
+	interface->init = alarm_notify_initable;
+}
+
+static void
 alarm_notify_init (AlarmNotify *an)
 {
 	gint ii;
 
-	an->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-		an, TYPE_ALARM_NOTIFY, AlarmNotifyPrivate);
+	an->priv = ALARM_NOTIFY_GET_PRIVATE (an);
 	an->priv->mutex = g_mutex_new ();
 	an->priv->selected_calendars = config_data_get_calendars (
 		"/apps/evolution/calendar/sources");
@@ -317,10 +342,11 @@ alarm_notify_get_selected_calendars (AlarmNotify *an)
  * Returns: a newly-created #AlarmNotify
  **/
 AlarmNotify *
-alarm_notify_new (void)
+alarm_notify_new (GCancellable *cancellable,
+                  GError **error)
 {
-	return g_object_new (
-		TYPE_ALARM_NOTIFY,
+	return g_initable_new (
+		TYPE_ALARM_NOTIFY, cancellable, error,
 		"application-id", APPLICATION_ID, NULL);
 }
 
diff --git a/calendar/gui/alarm-notify/alarm-notify.h b/calendar/gui/alarm-notify/alarm-notify.h
index 51837d2..f95a4d6 100644
--- a/calendar/gui/alarm-notify/alarm-notify.h
+++ b/calendar/gui/alarm-notify/alarm-notify.h
@@ -65,7 +65,8 @@ struct _AlarmNotifyClass {
 };
 
 GType		alarm_notify_get_type		(void);
-AlarmNotify *	alarm_notify_new		(void);
+AlarmNotify *	alarm_notify_new		(GCancellable *cancellable,
+						 GError **error);
 void		alarm_notify_add_calendar	(AlarmNotify *an,
 						 ECalClientSourceType source_type,
 						 ESource *source,
diff --git a/calendar/gui/alarm-notify/notify-main.c b/calendar/gui/alarm-notify/notify-main.c
index 225dde4..b1775d8 100644
--- a/calendar/gui/alarm-notify/notify-main.c
+++ b/calendar/gui/alarm-notify/notify-main.c
@@ -27,6 +27,7 @@
 #include <config.h>
 #endif
 
+#include <stdlib.h>
 #include <glib/gi18n.h>
 
 #include "alarm-notify.h"
@@ -50,6 +51,7 @@ main (gint argc,
 {
 	AlarmNotify *alarm_notify_service;
 	gint exit_status;
+	GError *error = NULL;
 #ifdef G_OS_WIN32
 	gchar *path;
 
@@ -87,7 +89,13 @@ main (gint argc,
 		g_warning ("Could not set PATH for Evolution Alarm Notifier");
 #endif
 
-	alarm_notify_service = alarm_notify_new ();
+	alarm_notify_service = alarm_notify_new (NULL, &error);
+
+	if (error != NULL) {
+		g_printerr ("%s\n", error->message);
+		g_error_free (error);
+		exit (EXIT_FAILURE);
+	}
 
 	exit_status = g_application_run (
 		G_APPLICATION (alarm_notify_service), argc, argv);
diff --git a/calendar/gui/dialogs/alarm-dialog.h b/calendar/gui/dialogs/alarm-dialog.h
index d99d47f..42c72d6 100644
--- a/calendar/gui/dialogs/alarm-dialog.h
+++ b/calendar/gui/dialogs/alarm-dialog.h
@@ -35,7 +35,9 @@
 
 G_BEGIN_DECLS
 
-gboolean alarm_dialog_run (GtkWidget *parent, ECalClient *cal_client, ECalComponentAlarm *alarm);
+gboolean	alarm_dialog_run		(GtkWidget *parent,
+						 ECalClient *cal_client,
+						 ECalComponentAlarm *alarm);
 
 G_END_DECLS
 
diff --git a/calendar/gui/dialogs/alarm-list-dialog.h b/calendar/gui/dialogs/alarm-list-dialog.h
index 163582c..5746664 100644
--- a/calendar/gui/dialogs/alarm-list-dialog.h
+++ b/calendar/gui/dialogs/alarm-list-dialog.h
@@ -36,9 +36,13 @@
 
 G_BEGIN_DECLS
 
-gboolean alarm_list_dialog_run (GtkWidget *parent, ECalClient *cal_client, EAlarmList *list_store);
-GtkWidget *alarm_list_dialog_peek (ECalClient *cal_client, EAlarmList *list_store);
-void alarm_list_dialog_set_client (GtkWidget *dlg_box, ECalClient *cal_client);
+gboolean	alarm_list_dialog_run		(GtkWidget *parent,
+						 ECalClient *cal_client,
+						 EAlarmList *list_store);
+GtkWidget *	alarm_list_dialog_peek		(ECalClient *cal_client,
+						 EAlarmList *list_store);
+void		alarm_list_dialog_set_client	(GtkWidget *dlg_box,
+						 ECalClient *cal_client);
 
 G_END_DECLS
 
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 42b8ace..2742754 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -3243,6 +3243,7 @@ real_send_comp (CompEditor *editor,
 	g_return_val_if_fail (IS_COMP_EDITOR (editor), FALSE);
 
 	priv = editor->priv;
+
 	flags = comp_editor_get_flags (editor);
 
 	if (priv->mod == CALOBJ_MOD_ALL && e_cal_component_is_instance (priv->comp)) {
diff --git a/calendar/gui/dialogs/copy-source-dialog.h b/calendar/gui/dialogs/copy-source-dialog.h
index d9475f7..5ac5140 100644
--- a/calendar/gui/dialogs/copy-source-dialog.h
+++ b/calendar/gui/dialogs/copy-source-dialog.h
@@ -27,10 +27,12 @@
 #define COPY_SOURCE_DIALOG_H
 
 #include <gtk/gtk.h>
-#include <libedataserver/e-source.h>
-#include <libecal/e-cal-client.h>
 #include <libecal/e-cal-util.h>
+#include <libecal/e-cal-client.h>
+#include <libedataserver/e-source.h>
 
-void copy_source_dialog (GtkWindow *parent, ESource *source, ECalClientSourceType type);
+void		copy_source_dialog		(GtkWindow *parent,
+						 ESource *source,
+						 ECalClientSourceType type);
 
-#endif
+#endif /* COPY_SOURCE_DIALOG_H */
diff --git a/calendar/gui/dialogs/e-delegate-dialog.c b/calendar/gui/dialogs/e-delegate-dialog.c
index af61f80..fc7ae7d 100644
--- a/calendar/gui/dialogs/e-delegate-dialog.c
+++ b/calendar/gui/dialogs/e-delegate-dialog.c
@@ -124,7 +124,6 @@ e_delegate_dialog_construct (EDelegateDialog *edd,
 	ENameSelectorModel *name_selector_model;
 	ENameSelectorDialog *name_selector_dialog;
 
-	g_return_val_if_fail (edd != NULL, NULL);
 	g_return_val_if_fail (E_IS_DELEGATE_DIALOG (edd), NULL);
 
 	priv = edd->priv;
@@ -228,8 +227,10 @@ e_delegate_dialog_new (const gchar *name,
 {
 	EDelegateDialog *edd;
 
-	edd = E_DELEGATE_DIALOG (g_object_new (E_TYPE_DELEGATE_DIALOG, NULL));
-	return e_delegate_dialog_construct (E_DELEGATE_DIALOG (edd), name, address);
+	edd = g_object_new (E_TYPE_DELEGATE_DIALOG, NULL);
+
+	return e_delegate_dialog_construct (
+		E_DELEGATE_DIALOG (edd), name, address);
 }
 
 gchar *
diff --git a/calendar/gui/dialogs/e-delegate-dialog.h b/calendar/gui/dialogs/e-delegate-dialog.h
index 032901c..5fb672b 100644
--- a/calendar/gui/dialogs/e-delegate-dialog.h
+++ b/calendar/gui/dialogs/e-delegate-dialog.h
@@ -21,28 +21,38 @@
  *
  */
 
-#ifndef __E_DELEGATE_DIALOG_H__
-#define __E_DELEGATE_DIALOG_H__
+#ifndef E_DELEGATE_DIALOG_H
+#define E_DELEGATE_DIALOG_H
 
 #include <gtk/gtk.h>
 
-
-
-#define E_TYPE_DELEGATE_DIALOG       (e_delegate_dialog_get_type ())
-#define E_DELEGATE_DIALOG(obj)       (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_DELEGATE_DIALOG, EDelegateDialog))
-#define E_DELEGATE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_DELEGATE_DIALOG,	\
-				      EDelegateDialogClass))
-#define E_IS_DELEGATE_DIALOG(obj)    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_DELEGATE_DIALOG))
-#define E_IS_DELEGATE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), E_TYPE_DELEGATE_DIALOG))
-
-typedef struct _EDelegateDialog		EDelegateDialog;
-typedef struct _EDelegateDialogClass	EDelegateDialogClass;
-typedef struct _EDelegateDialogPrivate	EDelegateDialogPrivate;
+/* Standard GObject macros */
+#define E_TYPE_DELEGATE_DIALOG \
+	(e_delegate_dialog_get_type ())
+#define E_DELEGATE_DIALOG(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST \
+	((obj), E_TYPE_DELEGATE_DIALOG, EDelegateDialog))
+#define E_DELEGATE_DIALOG_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_CAST \
+	((cls), E_TYPE_DELEGATE_DIALOG, EDelegateDialogClass))
+#define E_IS_DELEGATE_DIALOG(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE \
+	((obj), E_TYPE_DELEGATE_DIALOG))
+#define E_IS_DELEGATE_DIALOG_CLASS(cls) \
+	(G_TYPE_CHECK_CLASS_TYPE \
+	((cls), E_TYPE_DELEGATE_DIALOG))
+#define E_DELEGATE_DIALOG_GET_CLASS(obj) \
+	(G_TYPE_INSTANCE_GET_CLASS \
+	((obj), E_TYPE_DELEGATE_DIALOG, EDelegateDialogClass))
+
+G_BEGIN_DECLS
+
+typedef struct _EDelegateDialog EDelegateDialog;
+typedef struct _EDelegateDialogClass EDelegateDialogClass;
+typedef struct _EDelegateDialogPrivate EDelegateDialogPrivate;
 
 struct _EDelegateDialog {
 	GObject object;
-
-	/* Private data */
 	EDelegateDialogPrivate *priv;
 };
 
@@ -50,24 +60,21 @@ struct _EDelegateDialogClass {
 	GObjectClass parent_class;
 };
 
-GType            e_delegate_dialog_get_type          (void);
-
-EDelegateDialog * e_delegate_dialog_construct         (EDelegateDialog *etd,
-						      const gchar      *name,
-						      const gchar      *address);
-
-EDelegateDialog * e_delegate_dialog_new               (const gchar      *name,
-						      const gchar      *address);
-
-gchar *            e_delegate_dialog_get_delegate      (EDelegateDialog *etd);
-
-gchar *            e_delegate_dialog_get_delegate_name (EDelegateDialog *etd);
-
-void             e_delegate_dialog_set_delegate      (EDelegateDialog *etd,
-						      const gchar      *address);
-
-GtkWidget *       e_delegate_dialog_get_toplevel      (EDelegateDialog *etd);
-
-
-
-#endif /* __E_DELEGATE_DIALOG_H__ */
+GType		e_delegate_dialog_get_type	(void);
+EDelegateDialog *
+		e_delegate_dialog_construct	(EDelegateDialog *etd,
+						 const gchar *name,
+						 const gchar *address);
+EDelegateDialog *
+		e_delegate_dialog_new		(const gchar *name,
+						 const gchar *address);
+gchar *		e_delegate_dialog_get_delegate	(EDelegateDialog *etd);
+gchar *		e_delegate_dialog_get_delegate_name
+						(EDelegateDialog *etd);
+void		e_delegate_dialog_set_delegate	(EDelegateDialog *etd,
+						 const gchar *address);
+GtkWidget *	e_delegate_dialog_get_toplevel	(EDelegateDialog *etd);
+
+G_END_DECLS
+
+#endif /* E_DELEGATE_DIALOG_H */
diff --git a/calendar/gui/dialogs/e-send-options-utils.c b/calendar/gui/dialogs/e-send-options-utils.c
index f8e9335..7805548 100644
--- a/calendar/gui/dialogs/e-send-options-utils.c
+++ b/calendar/gui/dialogs/e-send-options-utils.c
@@ -28,6 +28,7 @@
 
 #include "e-send-options-utils.h"
 
+#include <stdlib.h>
 #include <string.h>
 
 void
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index f89b670..2935264 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
@@ -730,8 +730,9 @@ event_editor_send_comp (CompEditor *editor,
 		gboolean result;
 
 		client = e_meeting_store_get_client (priv->model);
-		result = itip_send_comp (E_CAL_COMPONENT_METHOD_CANCEL, comp,
-				client, NULL, NULL, NULL, strip_alarms, FALSE);
+		result = itip_send_comp (
+			E_CAL_COMPONENT_METHOD_CANCEL, comp,
+			client, NULL, NULL, NULL, strip_alarms, FALSE);
 		g_object_unref (comp);
 
 		if (!result)
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 653f021..e92c987 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -2916,11 +2916,12 @@ epage_client_opened_cb (GObject *source_object,
 			E_SOURCE_COMBO_BOX (priv->source_selector),
 			e_client_get_source (E_CLIENT (old_client)));
 
-		dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
-						 GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
-						 _("Unable to open the calendar '%s': %s"),
-						 e_source_peek_name (source),
-						 error ? error->message : _("Unknown error"));
+		dialog = gtk_message_dialog_new (
+			NULL, GTK_DIALOG_MODAL,
+			GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
+			_("Unable to open the calendar '%s': %s"),
+			e_source_peek_name (source),
+			error->message);
 		gtk_dialog_run (GTK_DIALOG (dialog));
 		gtk_widget_destroy (dialog);
 
@@ -2952,7 +2953,8 @@ epage_client_opened_cb (GObject *source_object,
 
 		sensitize_widgets (epage);
 
-		alarm_list_dialog_set_client (priv->alarm_list_dlg_widget, cal_client);
+		alarm_list_dialog_set_client (
+			priv->alarm_list_dlg_widget, cal_client);
 	}
 }
 
diff --git a/calendar/gui/dialogs/select-source-dialog.h b/calendar/gui/dialogs/select-source-dialog.h
index 6d64fb8..2ef8e0e 100644
--- a/calendar/gui/dialogs/select-source-dialog.h
+++ b/calendar/gui/dialogs/select-source-dialog.h
@@ -30,6 +30,8 @@
 #include <libedataserver/e-source.h>
 #include <libecal/e-cal-client.h>
 
-ESource *select_source_dialog (GtkWindow *parent, ECalClientSourceType type, ESource *except_source);
+ESource *	select_source_dialog		(GtkWindow *parent,
+						 ECalClientSourceType type,
+						 ESource *except_source);
 
 #endif
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index 31593e0..1942224 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -472,8 +472,9 @@ task_editor_send_comp (CompEditor *editor,
 		gboolean result;
 
 		client = e_meeting_store_get_client (priv->model);
-		result = itip_send_comp (E_CAL_COMPONENT_METHOD_CANCEL, comp,
-				client, NULL, NULL, NULL, strip_alarms, FALSE);
+		result = itip_send_comp (
+			E_CAL_COMPONENT_METHOD_CANCEL, comp,
+			client, NULL, NULL, NULL, strip_alarms, FALSE);
 		g_object_unref (comp);
 
 		if (!result)
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index e0aa030..05f1f87 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -1758,11 +1758,12 @@ tpage_client_opened_cb (GObject *source_object,
 			E_SOURCE_COMBO_BOX (priv->source_selector),
 			e_client_get_source (E_CLIENT (old_client)));
 
-		dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
-						 GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
-						 _("Unable to open tasks in '%s': %s"),
-						 e_source_peek_name (source),
-						 error ? error->message : _("Unknown error"));
+		dialog = gtk_message_dialog_new (
+			NULL, GTK_DIALOG_MODAL,
+			GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
+			_("Unable to open tasks in '%s': %s"),
+			e_source_peek_name (source),
+			error->message);
 		gtk_dialog_run (GTK_DIALOG (dialog));
 		gtk_widget_destroy (dialog);
 
diff --git a/calendar/gui/e-cal-model-calendar.c b/calendar/gui/e-cal-model-calendar.c
index 1254a87..6a1493f 100644
--- a/calendar/gui/e-cal-model-calendar.c
+++ b/calendar/gui/e-cal-model-calendar.c
@@ -369,8 +369,10 @@ ecmc_set_value_at (ETableModel *etm,
 				}
 			}
 
-			itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, send_comp ? send_comp : comp,
-					comp_data->client, NULL, NULL, NULL, strip_alarms, FALSE);
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_REQUEST,
+				send_comp ? send_comp : comp, comp_data->client,
+				NULL, NULL, NULL, strip_alarms, FALSE);
 
 			if (send_comp)
 				g_object_unref (send_comp);
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 637d0f5..4428d31 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -1609,6 +1609,7 @@ ecm_get_color_for_component (ECalModel *model,
 	ESource *source;
 	const gchar *color_spec;
 	gint i, first_empty = 0;
+
 	static AssignedColorData assigned_colors[] = {
 		{ "#BECEDD", NULL }, /* 190 206 221     Blue */
 		{ "#E2F0EF", NULL }, /* 226 240 239     Light Blue */
@@ -1650,8 +1651,9 @@ ecm_get_color_for_component (ECalModel *model,
 	}
 
 	/* return the first unused color */
-	assigned_colors[first_empty].uris = g_list_append (assigned_colors[first_empty].uris,
-							   g_strdup (e_client_get_uri (E_CLIENT (comp_data->client))));
+	assigned_colors[first_empty].uris = g_list_append (
+		assigned_colors[first_empty].uris,
+		g_strdup (e_client_get_uri (E_CLIENT (comp_data->client))));
 
 	return assigned_colors[first_empty].color;
 }
@@ -2039,7 +2041,7 @@ e_cal_model_get_client_list (ECalModel *model)
 
 /**
  * e_cal_model_get_client_for_uri:
- * @model: A calendar model.
+ * @model: an #ECalModel
  * @uri: Uri for the client to get.
  */
 ECalClient *
@@ -2123,8 +2125,8 @@ search_by_id_and_client (ECalModelPrivate *priv,
 
 static void
 remove_all_for_id_and_client (ECalModel *model,
-			      ECalClient *client,
-			      const ECalComponentId *id)
+                              ECalClient *client,
+                              const ECalComponentId *id)
 {
 	ECalModelComponent *comp_data;
 
@@ -2883,13 +2885,15 @@ client_opened_cb (GObject *source_object,
 	}
 
 	if (error != NULL) {
-		const gchar *uri;
+		ESource *source;
 
-		uri = e_client_get_uri (E_CLIENT (client));
+		source = e_client_get_source (E_CLIENT (client));
 		e_cal_model_remove_client (model, client);
 		g_warning (
 			"%s: Failed to open '%s': %s",
-			G_STRFUNC, uri, error->message);
+			G_STRFUNC,
+			e_source_peek_name (source),
+			error->message);
 		g_error_free (error);
 		e_cal_model_update_status_message (model, NULL, -1.0);
 		return;
@@ -2958,9 +2962,13 @@ add_new_client (ECalModel *model,
 	if (e_client_is_opened (E_CLIENT (client))) {
 		update_e_cal_view_for_client (model, client_data);
 	} else {
+		ESource *source;
+		const gchar *display_name;
 		gchar *msg;
 
-		msg = g_strdup_printf (_("Opening %s"), e_client_get_uri (E_CLIENT (client)));
+		source = e_client_get_source (E_CLIENT (client));
+		display_name = e_source_peek_name (source);
+		msg = g_strdup_printf (_("Opening %s"), display_name);
 		e_cal_model_update_status_message (model, msg, -1.0);
 		g_free (msg);
 
@@ -3388,6 +3396,91 @@ e_cal_model_create_component_with_defaults (ECalModel *model,
 }
 
 /**
+ * Returns information about attendees in the component.
+ * If there are no attendees, the function returns NULL.
+ *
+ * The information is like "Status: Accepted: X   Declined: Y  ...".
+ *
+ * Free returned pointer with g_free.
+ **/
+gchar *
+e_cal_model_get_attendees_status_info (ECalModel *model,
+                                       ECalComponent *comp,
+                                       ECalClient *cal_client)
+{
+	struct _values {
+		icalparameter_partstat status;
+		const gchar *caption;
+		gint count;
+	} values[] = {
+		{ ICAL_PARTSTAT_ACCEPTED,    N_("Accepted"),     0 },
+		{ ICAL_PARTSTAT_DECLINED,    N_("Declined"),     0 },
+		{ ICAL_PARTSTAT_TENTATIVE,   N_("Tentative"),    0 },
+		{ ICAL_PARTSTAT_DELEGATED,   N_("Delegated"),    0 },
+		{ ICAL_PARTSTAT_NEEDSACTION, N_("Needs action"), 0 },
+		{ ICAL_PARTSTAT_NONE,        N_("Other"),        0 },
+		{ ICAL_PARTSTAT_X,           NULL,              -1 }
+	};
+
+	GSList *attendees = NULL, *a;
+	gboolean have = FALSE;
+	gchar *res = NULL;
+	gint i;
+
+	g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
+
+	if (!comp || !e_cal_component_has_attendees (comp) ||
+	    !itip_organizer_is_user_ex (comp, cal_client, TRUE))
+		return NULL;
+
+	e_cal_component_get_attendee_list (comp, &attendees);
+
+	for (a = attendees; a; a = a->next) {
+		ECalComponentAttendee *att = a->data;
+
+		if (att && att->cutype == ICAL_CUTYPE_INDIVIDUAL &&
+		    (att->role == ICAL_ROLE_CHAIR ||
+		     att->role == ICAL_ROLE_REQPARTICIPANT ||
+		     att->role == ICAL_ROLE_OPTPARTICIPANT)) {
+			have = TRUE;
+
+			for (i = 0; values[i].count != -1; i++) {
+				if (att->status == values[i].status || values[i].status == ICAL_PARTSTAT_NONE) {
+					values[i].count++;
+					break;
+				}
+			}
+		}
+	}
+
+	if (have) {
+		GString *str = g_string_new ("");
+
+		for (i = 0; values[i].count != -1; i++) {
+			if (values[i].count > 0) {
+				if (str->str && *str->str)
+					g_string_append (str, "   ");
+
+				g_string_append_printf (str, "%s: %d", _(values[i].caption), values[i].count);
+			}
+		}
+
+		g_string_prepend (str, ": ");
+
+		/* To Translators: 'Status' here means the state of the attendees, the resulting string will be in a form:
+		 * Status: Accepted: X   Declined: Y   ... */
+		g_string_prepend (str, _("Status"));
+
+		res = g_string_free (str, FALSE);
+	}
+
+	if (attendees)
+		e_cal_component_free_attendee_list (attendees);
+
+	return res;
+}
+
+/**
  * e_cal_model_get_color_for_component
  */
 const gchar *
diff --git a/calendar/gui/e-cal-model.h b/calendar/gui/e-cal-model.h
index a514c95..6dd0467 100644
--- a/calendar/gui/e-cal-model.h
+++ b/calendar/gui/e-cal-model.h
@@ -263,6 +263,10 @@ void		e_cal_model_set_search_query	(ECalModel *model,
 icalcomponent *	e_cal_model_create_component_with_defaults
 						(ECalModel *model,
 						 gboolean all_day);
+gchar *		e_cal_model_get_attendees_status_info
+						(ECalModel *model,
+						 ECalComponent *comp,
+						 ECalClient *cal_client);
 const gchar *	e_cal_model_get_color_for_component
 						(ECalModel *model,
 						 ECalModelComponent *comp_data);
diff --git a/calendar/gui/e-calendar-selector.c b/calendar/gui/e-calendar-selector.c
index c71e3b9..9893916 100644
--- a/calendar/gui/e-calendar-selector.c
+++ b/calendar/gui/e-calendar-selector.c
@@ -26,13 +26,17 @@
 
 #include <libecal/e-cal-client.h>
 #include <libedataserverui/e-client-utils.h>
+
 #include "e-util/e-selection.h"
 
 struct _ECalendarSelectorPrivate {
 	gint dummy_value;
 };
 
-static gpointer parent_class;
+G_DEFINE_TYPE (
+	ECalendarSelector,
+	e_calendar_selector,
+	E_TYPE_SOURCE_SELECTOR)
 
 static gboolean
 calendar_selector_update_single_object (ECalClient *client,
@@ -170,7 +174,8 @@ calendar_selector_data_dropped (ESourceSelector *selector,
 		icalcomponent_set_uid (icalcomp, uid);
 	}
 
-	e_client_utils_open_new (destination, E_CLIENT_SOURCE_TYPE_EVENTS, FALSE, NULL,
+	e_client_utils_open_new (
+		destination, E_CLIENT_SOURCE_TYPE_EVENTS, FALSE, NULL,
 		e_client_utils_authenticate_handler, NULL,
 		client_opened_cb, icalcomp);
 
@@ -187,11 +192,10 @@ exit:
 }
 
 static void
-calendar_selector_class_init (ECalendarSelectorClass *class)
+e_calendar_selector_class_init (ECalendarSelectorClass *class)
 {
 	ESourceSelectorClass *source_selector_class;
 
-	parent_class = g_type_class_peek_parent (class);
 	g_type_class_add_private (class, sizeof (ECalendarSelectorPrivate));
 
 	source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -199,7 +203,7 @@ calendar_selector_class_init (ECalendarSelectorClass *class)
 }
 
 static void
-calendar_selector_init (ECalendarSelector *selector)
+e_calendar_selector_init (ECalendarSelector *selector)
 {
 	selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
 		selector, E_TYPE_CALENDAR_SELECTOR, ECalendarSelectorPrivate);
@@ -211,33 +215,6 @@ calendar_selector_init (ECalendarSelector *selector)
 	e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
 }
 
-GType
-e_calendar_selector_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY (type == 0)) {
-		const GTypeInfo type_info = {
-			sizeof (ECalendarSelectorClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) calendar_selector_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,  /* class_data */
-			sizeof (ECalendarSelector),
-			0,     /* n_preallocs */
-			(GInstanceInitFunc) calendar_selector_init,
-			NULL   /* value_table */
-		};
-
-		type = g_type_register_static (
-			E_TYPE_SOURCE_SELECTOR, "ECalendarSelector",
-			&type_info, 0);
-	}
-
-	return type;
-}
-
 GtkWidget *
 e_calendar_selector_new (ESourceList *source_list)
 {
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index b70df8b..84046e7 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -218,12 +218,15 @@ calendar_view_delete_event (ECalendarView *cal_view,
 		const gchar *uid;
 		gchar *rid = NULL;
 
-		if ((itip_organizer_is_user (comp, event->comp_data->client) || itip_sentby_is_user (comp, event->comp_data->client))
+		if ((itip_organizer_is_user (comp, event->comp_data->client) ||
+		     itip_sentby_is_user (comp, event->comp_data->client))
 		    && cancel_component_dialog ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (cal_view)),
 						event->comp_data->client,
 						comp, TRUE))
-			itip_send_comp (E_CAL_COMPONENT_METHOD_CANCEL, comp,
-					event->comp_data->client, NULL, NULL, NULL, TRUE, FALSE);
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_CANCEL,
+				comp, event->comp_data->client, NULL, NULL,
+				NULL, TRUE, FALSE);
 
 		e_cal_component_get_uid (comp, &uid);
 		if (!uid || !*uid) {
@@ -473,11 +476,14 @@ calendar_view_cut_clipboard (ESelectable *selectable)
 		comp = e_cal_component_new ();
 		e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-		if ((itip_organizer_is_user (comp, event->comp_data->client) || itip_sentby_is_user (comp, event->comp_data->client))
+		if ((itip_organizer_is_user (comp, event->comp_data->client) ||
+		     itip_sentby_is_user (comp, event->comp_data->client))
 		    && cancel_component_dialog ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (cal_view)),
 						event->comp_data->client, comp, TRUE))
-			itip_send_comp (E_CAL_COMPONENT_METHOD_CANCEL, comp,
-					event->comp_data->client, NULL, NULL, NULL, TRUE, FALSE);
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_CANCEL,
+				comp, event->comp_data->client, NULL, NULL,
+				NULL, TRUE, FALSE);
 
 		e_cal_component_get_uid (comp, &uid);
 		if (e_cal_component_is_instance (comp)) {
@@ -1058,11 +1064,16 @@ e_calendar_view_add_event (ECalendarView *cal_view,
 			g_free (uid);
 		}
 
-		if ((itip_organizer_is_user (comp, client) || itip_sentby_is_user (comp, client)) &&
-		    send_component_dialog ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (cal_view)),
-					   client, comp, TRUE, &strip_alarms, NULL)) {
-			itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, comp,
-				client, NULL, NULL, NULL, strip_alarms, FALSE);
+		if ((itip_organizer_is_user (comp, client) ||
+		     itip_sentby_is_user (comp, client)) &&
+			send_component_dialog (
+				(GtkWindow *) gtk_widget_get_toplevel (
+					GTK_WIDGET (cal_view)),
+				client, comp, TRUE, &strip_alarms, NULL)) {
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_REQUEST,
+				comp, client, NULL, NULL, NULL, strip_alarms,
+				FALSE);
 		}
 	} else {
 		g_message (G_STRLOC ": Could not create the object! %s", error ? error->message : "");
@@ -1339,7 +1350,8 @@ e_calendar_view_delete_selected_occurrence (ECalendarView *cal_view)
 
 		e_cal_component_free_datetime (&dt);
 
-		if ((itip_organizer_is_user (comp, event->comp_data->client) || itip_sentby_is_user (comp, event->comp_data->client))
+		if ((itip_organizer_is_user (comp, event->comp_data->client) ||
+		     itip_sentby_is_user (comp, event->comp_data->client))
 				&& cancel_component_dialog ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (cal_view)),
 					event->comp_data->client,
 					comp, TRUE) && !e_cal_client_check_save_schedules (event->comp_data->client)) {
@@ -1354,7 +1366,11 @@ e_calendar_view_delete_selected_occurrence (ECalendarView *cal_view)
 
 				e_cal_component_free_datetime (&range.datetime);
 			}
-			itip_send_comp (E_CAL_COMPONENT_METHOD_CANCEL, comp, event->comp_data->client, NULL, NULL, NULL, TRUE, FALSE);
+
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_CANCEL,
+				comp, event->comp_data->client, NULL, NULL,
+				NULL, TRUE, FALSE);
 		}
 
 		if (is_instance)
@@ -1437,8 +1453,14 @@ e_calendar_view_new_appointment_for (ECalendarView *cal_view,
 
 	if (e_client_is_readonly (E_CLIENT (default_client))) {
 		GtkWidget *widget;
+		ESource *source;
+
+		source = e_client_get_source (E_CLIENT (default_client));
 
-		widget = e_alert_dialog_new_for_args (parent, "calendar:prompt-read-only-cal", e_source_peek_name (e_client_get_source (E_CLIENT (default_client))), NULL);
+		widget = e_alert_dialog_new_for_args (
+			parent, "calendar:prompt-read-only-cal",
+			e_source_peek_name (source),
+			NULL);
 
 		g_signal_connect ((GtkDialog *)widget, "response", G_CALLBACK (gtk_widget_destroy),
 				  widget);
@@ -1653,7 +1675,9 @@ e_calendar_view_edit_appointment (ECalendarView *cal_view,
 		ECalComponent *comp = e_cal_component_new ();
 		e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (icalcomp));
 		flags |= COMP_EDITOR_MEETING;
-		if (itip_organizer_is_user (comp, client) || itip_sentby_is_user (comp, client) || !e_cal_component_has_attendees (comp))
+		if (itip_organizer_is_user (comp, client) ||
+		    itip_sentby_is_user (comp, client) ||
+		    !e_cal_component_has_attendees (comp))
 			flags |= COMP_EDITOR_USER_ORG;
 		g_object_unref (comp);
 	}
@@ -1662,7 +1686,8 @@ e_calendar_view_edit_appointment (ECalendarView *cal_view,
 }
 
 void
-e_calendar_view_modify_and_send (ECalComponent *comp,
+e_calendar_view_modify_and_send (ECalendarView *cal_view,
+                                 ECalComponent *comp,
                                  ECalClient *client,
                                  CalObjModType mod,
                                  GtkWindow *toplevel,
@@ -1671,12 +1696,15 @@ e_calendar_view_modify_and_send (ECalComponent *comp,
 	gboolean only_new_attendees = FALSE;
 	GError *error = NULL;
 
+	g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
+
 	e_cal_component_commit_sequence (comp);
 
 	if (e_cal_client_modify_object_sync (client, e_cal_component_get_icalcomponent (comp), mod, NULL, &error)) {
 		gboolean strip_alarms = TRUE;
 
-		if ((itip_organizer_is_user (comp, client) || itip_sentby_is_user (comp, client)) &&
+		if ((itip_organizer_is_user (comp, client) ||
+		     itip_sentby_is_user (comp, client)) &&
 		    send_component_dialog (toplevel, client, comp, new, &strip_alarms, &only_new_attendees)) {
 			ECalComponent *send_comp = NULL;
 
@@ -1699,7 +1727,10 @@ e_calendar_view_modify_and_send (ECalComponent *comp,
 				}
 			}
 
-			itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, send_comp ? send_comp : comp, client, NULL, NULL, NULL, strip_alarms, only_new_attendees);
+			itip_send_comp (
+				E_CAL_COMPONENT_METHOD_REQUEST,
+				send_comp ? send_comp : comp, client, NULL,
+				NULL, NULL, strip_alarms, only_new_attendees);
 
 			if (send_comp)
 				g_object_unref (send_comp);
@@ -1784,84 +1815,6 @@ e_calendar_view_move_tip (GtkWidget *widget,
 	gtk_widget_show (widget);
 }
 
-/**
- * Returns information about attendees in the component. If no attendees, then returns NULL.
- * The information is like "Status: Accepted: X   Declined: Y  ...".
- * Free returned pointer with g_free.
- **/
-gchar *
-e_calendar_view_get_attendees_status_info (ECalComponent *comp,
-                                           ECalClient *client)
-{
-	struct _values {
-		icalparameter_partstat status;
-		const gchar *caption;
-		gint count;
-	} values[] = {
-		{ ICAL_PARTSTAT_ACCEPTED,    N_("Accepted"),     0 },
-		{ ICAL_PARTSTAT_DECLINED,    N_("Declined"),     0 },
-		{ ICAL_PARTSTAT_TENTATIVE,   N_("Tentative"),    0 },
-		{ ICAL_PARTSTAT_DELEGATED,   N_("Delegated"),    0 },
-		{ ICAL_PARTSTAT_NEEDSACTION, N_("Needs action"), 0 },
-		{ ICAL_PARTSTAT_NONE,        N_("Other"),        0 },
-		{ ICAL_PARTSTAT_X,           NULL,              -1 }
-	};
-
-	GSList *attendees = NULL, *a;
-	gboolean have = FALSE;
-	gchar *res = NULL;
-	gint i;
-
-	if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user_ex (comp, client, TRUE))
-		return NULL;
-
-	e_cal_component_get_attendee_list (comp, &attendees);
-
-	for (a = attendees; a; a = a->next) {
-		ECalComponentAttendee *att = a->data;
-
-		if (att && att->cutype == ICAL_CUTYPE_INDIVIDUAL &&
-		    (att->role == ICAL_ROLE_CHAIR ||
-		     att->role == ICAL_ROLE_REQPARTICIPANT ||
-		     att->role == ICAL_ROLE_OPTPARTICIPANT)) {
-			have = TRUE;
-
-			for (i = 0; values[i].count != -1; i++) {
-				if (att->status == values[i].status || values[i].status == ICAL_PARTSTAT_NONE) {
-					values[i].count++;
-					break;
-				}
-			}
-		}
-	}
-
-	if (have) {
-		GString *str = g_string_new ("");
-
-		for (i = 0; values[i].count != -1; i++) {
-			if (values[i].count > 0) {
-				if (str->str && *str->str)
-					g_string_append (str, "   ");
-
-				g_string_append_printf (str, "%s: %d", _(values[i].caption), values[i].count);
-			}
-		}
-
-		g_string_prepend (str, ": ");
-
-		/* To Translators: 'Status' here means the state of the attendees, the resulting string will be in a form:
-		 * Status: Accepted: X   Declined: Y   ... */
-		g_string_prepend (str, _("Status"));
-
-		res = g_string_free (str, FALSE);
-	}
-
-	if (attendees)
-		e_cal_component_free_attendee_list (attendees);
-
-	return res;
-}
-
 /*
  * It is expected to show the tooltips in this below format
  *
@@ -1873,7 +1826,8 @@ e_calendar_view_get_attendees_status_info (ECalComponent *comp,
  */
 
 gboolean
-e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
+e_calendar_view_get_tooltips (ECalendarView *cal_view,
+                              const ECalendarViewEventData *data)
 {
 	GtkWidget *label, *box, *hbox, *ebox, *frame;
 	const gchar *str;
@@ -1888,9 +1842,14 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
 	GdkWindow *window;
 	ECalComponent *newcomp = e_cal_component_new ();
 	icaltimezone *zone, *default_zone;
+	ECalModel *model;
 	ECalClient *client = NULL;
 	gboolean free_text = FALSE;
 
+	g_return_val_if_fail (E_IS_CALENDAR_VIEW (cal_view), FALSE);
+
+	model = e_calendar_view_get_model (cal_view);
+
 	/* Delete any stray tooltip if left */
 	if (widget)
 		gtk_widget_destroy (widget);
@@ -2023,7 +1982,8 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
 	g_free (tmp2);
 	g_free (tmp1);
 
-	tmp = e_calendar_view_get_attendees_status_info (newcomp, pevent->comp_data->client);
+	tmp = e_cal_model_get_attendees_status_info (
+		model, newcomp, pevent->comp_data->client);
 	if (tmp) {
 		hbox = gtk_hbox_new (FALSE, 0);
 		gtk_box_pack_start ((GtkBox *) hbox, gtk_label_new (tmp), FALSE, FALSE, 0);
diff --git a/calendar/gui/e-calendar-view.h b/calendar/gui/e-calendar-view.h
index decfdff..7ebcef7 100644
--- a/calendar/gui/e-calendar-view.h
+++ b/calendar/gui/e-calendar-view.h
@@ -235,18 +235,21 @@ void		e_calendar_view_new_appointment_full
 						 gboolean meeting,
 						 gboolean no_past_date);
 void		e_calendar_view_new_appointment	(ECalendarView *cal_view);
-void		e_calendar_view_edit_appointment (ECalendarView *cal_view,
+void		e_calendar_view_edit_appointment
+						(ECalendarView *cal_view,
 						 ECalClient *client,
 						 icalcomponent *icalcomp,
 						 EEditEventMode mode);
 void		e_calendar_view_open_event	(ECalendarView *cal_view);
-void		e_calendar_view_modify_and_send	(ECalComponent *comp,
+void		e_calendar_view_modify_and_send	(ECalendarView *cal_view,
+						 ECalComponent *comp,
 						 ECalClient *client,
 						 CalObjModType mod,
 						 GtkWindow *toplevel,
 						 gboolean new);
 
-gboolean	e_calendar_view_get_tooltips	(const ECalendarViewEventData *data);
+gboolean	e_calendar_view_get_tooltips	(ECalendarView *cal_view,
+						 const ECalendarViewEventData *data);
 
 void		e_calendar_view_move_tip	(GtkWidget *widget,
 						 gint x,
@@ -256,9 +259,6 @@ const gchar *	e_calendar_view_get_icalcomponent_summary
 						(ECalClient *ecal,
 						 icalcomponent *icalcomp,
 						 gboolean *free_text);
-gchar *		e_calendar_view_get_attendees_status_info
-						(ECalComponent *comp,
-						 ECalClient *client);
 
 void		e_calendar_view_emit_user_created
 						(ECalendarView *cal_view);
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index efad7db..8af5ffb 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -739,7 +739,9 @@ process_component (EDayView *day_view,
 	/* Add the object */
 	add_event_data.day_view = day_view;
 	add_event_data.comp_data = comp_data;
-	e_day_view_add_event (comp, comp_data->instance_start, comp_data->instance_end, &add_event_data);
+	e_day_view_add_event (
+		comp, comp_data->instance_start,
+		comp_data->instance_end, &add_event_data);
 
 	g_object_unref (comp);
 	g_free (rid);
@@ -4225,7 +4227,8 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
 	comp = e_cal_component_new ();
 	e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-	if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client)) {
+	if (e_cal_component_has_attendees (comp) &&
+	    !itip_organizer_is_user (comp, client)) {
 		g_object_unref (comp);
 		e_day_view_abort_resize (day_view);
 		return;
@@ -4297,7 +4300,10 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
 		mod = CALOBJ_MOD_THIS;
 
 	toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
-	e_calendar_view_modify_and_send (comp, client, mod, toplevel, TRUE);
+
+	e_calendar_view_modify_and_send (
+		E_CALENDAR_VIEW (day_view),
+		comp, client, mod, toplevel, TRUE);
 
  out:
 	day_view->resize_drag_pos = E_CALENDAR_VIEW_POS_NONE;
@@ -4343,7 +4349,8 @@ e_day_view_finish_resize (EDayView *day_view)
 	comp = e_cal_component_new ();
 	e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-	if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client))	{
+	if (e_cal_component_has_attendees (comp) &&
+	    !itip_organizer_is_user (comp, client)) {
 		g_object_unref (comp);
 		e_day_view_abort_resize (day_view);
 		return;
@@ -4413,7 +4420,11 @@ e_day_view_finish_resize (EDayView *day_view)
 	toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
 
 	e_cal_component_commit_sequence (comp);
-	e_calendar_view_modify_and_send (comp, client, mod, toplevel, TRUE);
+
+	e_calendar_view_modify_and_send (
+		E_CALENDAR_VIEW (day_view),
+		comp, client, mod, toplevel, TRUE);
+
  out:
 	g_object_unref (comp);
 }
@@ -4558,7 +4569,9 @@ e_day_view_add_event (ECalComponent *comp,
 						    e_calendar_view_get_timezone (E_CALENDAR_VIEW (add_event_data->day_view))))
 		event.different_timezone = TRUE;
 
-	if (!e_cal_component_has_attendees (comp) || itip_organizer_is_user (comp, event.comp_data->client) || itip_sentby_is_user (comp, event.comp_data->client))
+	if (!e_cal_component_has_attendees (comp) ||
+	    itip_organizer_is_user (comp, event.comp_data->client) ||
+	    itip_sentby_is_user (comp, event.comp_data->client))
 		event.is_editable = TRUE;
 	else
 		event.is_editable = FALSE;
@@ -5099,9 +5112,11 @@ e_day_view_add_new_event_in_selected_range (EDayView *day_view,
 	const gchar *uid;
 	AddEventData add_event_data;
 
-	/* Check if the client is read only */
 	model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
+
 	client = e_cal_model_get_default_client (model);
+
+	/* Check if the client is read only */
 	if (e_client_is_readonly (E_CLIENT (client)))
 		return FALSE;
 
@@ -6488,7 +6503,8 @@ e_day_view_change_event_time (EDayView *day_view,
 	comp = e_cal_component_new ();
 	e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-	if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client))	{
+	if (e_cal_component_has_attendees (comp) &&
+	    !itip_organizer_is_user (comp, client)) {
 		g_object_unref (comp);
 		return;
 	}
@@ -6537,7 +6553,10 @@ e_day_view_change_event_time (EDayView *day_view,
 	toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
 
 	e_cal_component_commit_sequence (comp);
-	e_calendar_view_modify_and_send (comp, client, mod, toplevel, TRUE);
+
+	e_calendar_view_modify_and_send (
+		E_CALENDAR_VIEW (day_view),
+		comp, client, mod, toplevel, TRUE);
 
 out:
 	g_object_unref (comp);
@@ -6861,7 +6880,10 @@ e_day_view_on_editing_stopped (EDayView *day_view,
 
 			/* FIXME When sending here, what exactly should we send? */
 			toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
-			e_calendar_view_modify_and_send (comp, client, mod, toplevel, FALSE);
+
+			e_calendar_view_modify_and_send (
+				E_CALENDAR_VIEW (day_view),
+				comp, client, mod, toplevel, FALSE);
 		}
 
 	}
@@ -7863,13 +7885,13 @@ e_day_view_on_drag_data_get (GtkWidget *widget,
 
 	comp_str = icalcomponent_as_ical_string_r (vcal);
 	if (comp_str) {
-		ESource *source = e_client_get_source (E_CLIENT (event->comp_data->client));
-		const gchar *source_uid = e_source_peek_uid (source);
+		ESource *source;
+		const gchar *source_uid;
 		GdkAtom target;
 		gchar *tmp;
 
-		if (!source_uid)
-			source_uid = "";
+		source = e_client_get_source (E_CLIENT (event->comp_data->client));
+		source_uid = e_source_peek_uid (source);
 
 		tmp = g_strconcat (source_uid, "\n", comp_str, NULL);
 		target = gtk_selection_data_get_target (selection_data);
@@ -7984,7 +8006,8 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
 			comp = e_cal_component_new ();
 			e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-			if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client))	{
+			if (e_cal_component_has_attendees (comp) &&
+			    !itip_organizer_is_user (comp, client)) {
 				g_object_unref (comp);
 				return;
 			}
@@ -8055,7 +8078,10 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
 				mod = CALOBJ_MOD_THIS;
 
 			toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
-			e_calendar_view_modify_and_send (comp, client, mod, toplevel, FALSE);
+
+			e_calendar_view_modify_and_send (
+				E_CALENDAR_VIEW (day_view),
+				comp, client, mod, toplevel, FALSE);
 
 			g_object_unref (comp);
 
@@ -8234,7 +8260,8 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
 			comp = e_cal_component_new ();
 			e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
 
-			if (e_cal_component_has_attendees (comp) && !itip_organizer_is_user (comp, client))	{
+			if (e_cal_component_has_attendees (comp) &&
+			    !itip_organizer_is_user (comp, client)) {
 				g_object_unref (comp);
 				return;
 			}
@@ -8282,7 +8309,10 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
 				mod = CALOBJ_MOD_THIS;
 
 			toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
-			e_calendar_view_modify_and_send (comp, client, mod, toplevel, FALSE);
+
+			e_calendar_view_modify_and_send (
+				E_CALENDAR_VIEW (day_view),
+				comp, client, mod, toplevel, FALSE);
 
 			g_object_unref (comp);
 
diff --git a/calendar/gui/e-meeting-store.c b/calendar/gui/e-meeting-store.c
index 7e5fbf2..833c6a8 100644
--- a/calendar/gui/e-meeting-store.c
+++ b/calendar/gui/e-meeting-store.c
@@ -1984,7 +1984,9 @@ download_with_libsoup (const gchar *uri,
 	g_object_set_data_full (G_OBJECT (msg), "orig-uri", g_strdup (uri), g_free);
 
 	session = soup_session_async_new ();
-	g_signal_connect (session, "authenticate", G_CALLBACK (soup_authenticate), NULL);
+	g_signal_connect (
+		session, "authenticate",
+		G_CALLBACK (soup_authenticate), NULL);
 
 	proxy = e_proxy_new ();
 	e_proxy_setup_proxy (proxy);
diff --git a/calendar/gui/e-memo-list-selector.c b/calendar/gui/e-memo-list-selector.c
index 5fff33d..4484f94 100644
--- a/calendar/gui/e-memo-list-selector.c
+++ b/calendar/gui/e-memo-list-selector.c
@@ -34,7 +34,10 @@ struct _EMemoListSelectorPrivate {
 	gint dummy_value;
 };
 
-static gpointer parent_class;
+G_DEFINE_TYPE (
+	EMemoListSelector,
+	e_memo_list_selector,
+	E_TYPE_SOURCE_SELECTOR)
 
 static gboolean
 memo_list_selector_update_single_object (ECalClient *client,
@@ -302,11 +305,10 @@ memo_list_selector_data_dropped (ESourceSelector *selector,
 }
 
 static void
-memo_list_selector_class_init (EMemoListSelectorClass *class)
+e_memo_list_selector_class_init (EMemoListSelectorClass *class)
 {
 	ESourceSelectorClass *source_selector_class;
 
-	parent_class = g_type_class_peek_parent (class);
 	g_type_class_add_private (class, sizeof (EMemoListSelectorPrivate));
 
 	source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -314,7 +316,7 @@ memo_list_selector_class_init (EMemoListSelectorClass *class)
 }
 
 static void
-memo_list_selector_init (EMemoListSelector *selector)
+e_memo_list_selector_init (EMemoListSelector *selector)
 {
 	selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
 		selector, E_TYPE_MEMO_LIST_SELECTOR, EMemoListSelectorPrivate);
@@ -326,33 +328,6 @@ memo_list_selector_init (EMemoListSelector *selector)
 	e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
 }
 
-GType
-e_memo_list_selector_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY (type == 0)) {
-		const GTypeInfo type_info = {
-			sizeof (EMemoListSelectorClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) memo_list_selector_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,  /* class_data */
-			sizeof (EMemoListSelector),
-			0,     /* n_preallocs */
-			(GInstanceInitFunc) memo_list_selector_init,
-			NULL   /* value_table */
-		};
-
-		type = g_type_register_static (
-			E_TYPE_SOURCE_SELECTOR, "EMemoListSelector",
-			&type_info, 0);
-	}
-
-	return type;
-}
-
 GtkWidget *
 e_memo_list_selector_new (ESourceList *source_list)
 {
diff --git a/calendar/gui/e-task-list-selector.c b/calendar/gui/e-task-list-selector.c
index 7e09159..ba210e8 100644
--- a/calendar/gui/e-task-list-selector.c
+++ b/calendar/gui/e-task-list-selector.c
@@ -34,7 +34,10 @@ struct _ETaskListSelectorPrivate {
 	gint dummy_value;
 };
 
-static gpointer parent_class;
+G_DEFINE_TYPE (
+	ETaskListSelector,
+	e_task_list_selector,
+	E_TYPE_SOURCE_SELECTOR)
 
 static gboolean
 task_list_selector_update_single_object (ECalClient *client,
@@ -304,11 +307,10 @@ task_list_selector_data_dropped (ESourceSelector *selector,
 }
 
 static void
-task_list_selector_class_init (ETaskListSelectorClass *class)
+e_task_list_selector_class_init (ETaskListSelectorClass *class)
 {
 	ESourceSelectorClass *source_selector_class;
 
-	parent_class = g_type_class_peek_parent (class);
 	g_type_class_add_private (class, sizeof (ETaskListSelectorPrivate));
 
 	source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -316,7 +318,7 @@ task_list_selector_class_init (ETaskListSelectorClass *class)
 }
 
 static void
-task_list_selector_init (ETaskListSelector *selector)
+e_task_list_selector_init (ETaskListSelector *selector)
 {
 	selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
 		selector, E_TYPE_TASK_LIST_SELECTOR, ETaskListSelectorPrivate);
@@ -328,33 +330,6 @@ task_list_selector_init (ETaskListSelector *selector)
 	e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
 }
 
-GType
-e_task_list_selector_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY (type == 0)) {
-		const GTypeInfo type_info = {
-			sizeof (ETaskListSelectorClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) task_list_selector_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL,  /* class_data */
-			sizeof (ETaskListSelector),
-			0,     /* n_preallocs */
-			(GInstanceInitFunc) task_list_selector_init,
-			NULL   /* value_table */
-		};
-
-		type = g_type_register_static (
-			E_TYPE_SOURCE_SELECTOR, "ETaskListSelector",
-			&type_info, 0);
-	}
-
-	return type;
-}
-
 GtkWidget *
 e_task_list_selector_new (ESourceList *source_list)
 {
diff --git a/calendar/gui/e-task-table.c b/calendar/gui/e-task-table.c
index ec49cd1..0a38889 100644
--- a/calendar/gui/e-task-table.c
+++ b/calendar/gui/e-task-table.c
@@ -712,6 +712,7 @@ task_table_query_tooltip (GtkWidget *widget,
 
 	model = e_task_table_get_model (task_table);
 	comp_data = e_cal_model_get_component_at (model, row);
+
 	if (!comp_data || !comp_data->icalcomp)
 		return FALSE;
 
@@ -850,8 +851,8 @@ task_table_query_tooltip (GtkWidget *widget,
 	e_cal_component_free_datetime (&dtstart);
 	e_cal_component_free_datetime (&dtdue);
 
-	tmp = e_calendar_view_get_attendees_status_info (
-		new_comp, comp_data->client);
+	tmp = e_cal_model_get_attendees_status_info (
+		model, new_comp, comp_data->client);
 	if (tmp) {
 		l = gtk_label_new (tmp);
 		gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index a98ff42..036b619 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -3901,7 +3901,10 @@ e_week_view_change_event_time (EWeekView *week_view,
 	toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (week_view)));
 
 	e_cal_component_commit_sequence (comp);
-	e_calendar_view_modify_and_send (comp, client, mod, toplevel, TRUE);
+
+	e_calendar_view_modify_and_send (
+		E_CALENDAR_VIEW (week_view),
+		comp, client, mod, toplevel, TRUE);
 
 out:
 	g_object_unref (comp);
@@ -4112,7 +4115,10 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
 
 			/* FIXME When sending here, what exactly should we send? */
 			toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (week_view)));
-			e_calendar_view_modify_and_send (comp, client, mod, toplevel, FALSE);
+
+			e_calendar_view_modify_and_send (
+				E_CALENDAR_VIEW (week_view),
+				comp, client, mod, toplevel, FALSE);
 		}
 	}
 
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 654eb18..66c90fb 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -138,9 +138,9 @@ struct _GnomeCalendarPrivate {
 enum {
 	PROP_0,
 	PROP_DATE_NAVIGATOR,
-	PROP_VIEW,
 	PROP_MEMO_TABLE,
-	PROP_TASK_TABLE
+	PROP_TASK_TABLE,
+	PROP_VIEW
 };
 
 enum {
@@ -341,12 +341,6 @@ gnome_calendar_set_property (GObject *object,
 				g_value_get_object (value));
 			return;
 
-		case PROP_VIEW:
-			gnome_calendar_set_view (
-				GNOME_CALENDAR (object),
-				g_value_get_int (value));
-			return;
-
 		case PROP_MEMO_TABLE:
 			gnome_calendar_set_memo_table (
 				GNOME_CALENDAR (object),
@@ -358,6 +352,12 @@ gnome_calendar_set_property (GObject *object,
 				GNOME_CALENDAR (object),
 				g_value_get_object (value));
 			return;
+
+		case PROP_VIEW:
+			gnome_calendar_set_view (
+				GNOME_CALENDAR (object),
+				g_value_get_int (value));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -376,12 +376,6 @@ gnome_calendar_get_property (GObject *object,
 				GNOME_CALENDAR (object)));
 			return;
 
-		case PROP_VIEW:
-			g_value_set_int (
-				value, gnome_calendar_get_view (
-				GNOME_CALENDAR (object)));
-			return;
-
 		case PROP_MEMO_TABLE:
 			g_value_set_object (
 				value, gnome_calendar_get_memo_table (
@@ -393,6 +387,12 @@ gnome_calendar_get_property (GObject *object,
 				value, gnome_calendar_get_task_table (
 				GNOME_CALENDAR (object)));
 			return;
+
+		case PROP_VIEW:
+			g_value_set_int (
+				value, gnome_calendar_get_view (
+				GNOME_CALENDAR (object)));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -528,18 +528,6 @@ gnome_calendar_class_init (GnomeCalendarClass *class)
 
 	g_object_class_install_property (
 		object_class,
-		PROP_VIEW,
-		g_param_spec_int (
-			"view",
-			"View",
-			NULL,
-			GNOME_CAL_DAY_VIEW,
-			GNOME_CAL_LIST_VIEW,
-			GNOME_CAL_DAY_VIEW,
-			G_PARAM_READWRITE));
-
-	g_object_class_install_property (
-		object_class,
 		PROP_MEMO_TABLE,
 		g_param_spec_object (
 			"memo-table",
@@ -558,6 +546,18 @@ gnome_calendar_class_init (GnomeCalendarClass *class)
 			E_TYPE_TASK_TABLE,
 			G_PARAM_READWRITE));
 
+	g_object_class_install_property (
+		object_class,
+		PROP_VIEW,
+		g_param_spec_int (
+			"view",
+			"View",
+			NULL,
+			GNOME_CAL_DAY_VIEW,
+			GNOME_CAL_LIST_VIEW,
+			GNOME_CAL_DAY_VIEW,
+			G_PARAM_READWRITE));
+
 	signals[DATES_SHOWN_CHANGED] =
 		g_signal_new ("dates_shown_changed",
 				G_TYPE_FROM_CLASS (object_class),
diff --git a/calendar/importers/icalendar-importer.c b/calendar/importers/icalendar-importer.c
index 739a23c..449cab0 100644
--- a/calendar/importers/icalendar-importer.c
+++ b/calendar/importers/icalendar-importer.c
@@ -335,7 +335,7 @@ ivcal_getwidget (EImport *ei,
 		if (!group)
 			group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (rb));
 		if (first == NULL) {
-			g_datalist_set_data_full(&target->data, "primary-source", g_object_ref(primary), g_object_unref);
+			g_datalist_set_data_full(&target->data, "primary-source", g_object_ref (primary), g_object_unref);
 			g_datalist_set_data(&target->data, "primary-type", GINT_TO_POINTER(import_type_map[i]));
 			first = rb;
 		}
@@ -867,7 +867,8 @@ open_default_source (ICalIntelligentImporter *ici,
 
 	e_import_status (ici->ei, ici->target, _("Opening calendar"), 0);
 
-	e_client_utils_open_new (source, source_type == E_CAL_CLIENT_SOURCE_TYPE_EVENTS ? E_CLIENT_SOURCE_TYPE_EVENTS : E_CLIENT_SOURCE_TYPE_TASKS, FALSE, ici->cancellable,
+	e_client_utils_open_new (
+		source, source_type == E_CAL_CLIENT_SOURCE_TYPE_EVENTS ? E_CLIENT_SOURCE_TYPE_EVENTS : E_CLIENT_SOURCE_TYPE_TASKS, FALSE, ici->cancellable,
 		e_client_utils_authenticate_handler, NULL,
 		default_source_opened_cb, odsd);
 
diff --git a/capplet/settings/mail-capplet-shell.c b/capplet/settings/mail-capplet-shell.c
index dba46a8..91a82b6 100644
--- a/capplet/settings/mail-capplet-shell.c
+++ b/capplet/settings/mail-capplet-shell.c
@@ -279,7 +279,7 @@ mail_capplet_shell_construct (MailCappletShell *shell,
 	mail_config_init (session);
 	mail_msg_init ();
 	custom_dir = g_build_filename (e_get_user_data_dir (), "mail", NULL);
-	e_mail_store_init (session, custom_dir);
+	e_mail_store_init (shell->priv->backend, custom_dir);
 	g_free (custom_dir);
 
 	if (just_druid) {
diff --git a/composer/e-composer-from-header.h b/composer/e-composer-from-header.h
index d2603bd..182a751 100644
--- a/composer/e-composer-from-header.h
+++ b/composer/e-composer-from-header.h
@@ -21,13 +21,11 @@
 #ifndef E_COMPOSER_FROM_HEADER_H
 #define E_COMPOSER_FROM_HEADER_H
 
-#include "e-composer-common.h"
-
 #include <libedataserver/e-account.h>
 #include <libedataserver/e-account-list.h>
 
 #include <misc/e-account-combo-box.h>
-#include "e-composer-header.h"
+#include <composer/e-composer-header.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_FROM_HEADER \
diff --git a/composer/e-composer-header-table.h b/composer/e-composer-header-table.h
index 856a8e2..f7edec0 100644
--- a/composer/e-composer-header-table.h
+++ b/composer/e-composer-header-table.h
@@ -18,8 +18,6 @@
 #ifndef E_COMPOSER_HEADER_TABLE_H
 #define E_COMPOSER_HEADER_TABLE_H
 
-#include "e-composer-common.h"
-
 #include <libedataserver/e-account.h>
 #include <libedataserver/e-account-list.h>
 #include <libebook/e-destination.h>
@@ -27,8 +25,7 @@
 #include <shell/e-shell.h>
 #include <e-util/e-signature.h>
 #include <e-util/e-signature-list.h>
-
-#include "e-composer-header.h"
+#include <composer/e-composer-header.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_HEADER_TABLE \
diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c
index d6a270a..29a9a5c 100644
--- a/composer/e-composer-header.c
+++ b/composer/e-composer-header.c
@@ -26,21 +26,12 @@
 
 #include "e-composer-header.h"
 
-#include <glib/gi18n.h>
-
-enum {
-	PROP_0,
-	PROP_BUTTON,
-	PROP_LABEL,
-	PROP_SENSITIVE,
-	PROP_VISIBLE
-};
+#include <config.h>
+#include <glib/gi18n-lib.h>
 
-enum {
-	CHANGED,
-	CLICKED,
-	LAST_SIGNAL
-};
+#define E_COMPOSER_HEADER_GET_PRIVATE(obj) \
+	(G_TYPE_INSTANCE_GET_PRIVATE \
+	((obj), E_TYPE_COMPOSER_HEADER, EComposerHeaderPrivate))
 
 struct _EComposerHeaderPrivate {
 	gchar *label;
@@ -56,6 +47,20 @@ struct _EComposerHeaderPrivate {
 	guint visible   : 1;
 };
 
+enum {
+	PROP_0,
+	PROP_BUTTON,
+	PROP_LABEL,
+	PROP_SENSITIVE,
+	PROP_VISIBLE
+};
+
+enum {
+	CHANGED,
+	CLICKED,
+	LAST_SIGNAL
+};
+
 static guint signal_ids[LAST_SIGNAL];
 
 G_DEFINE_ABSTRACT_TYPE (
@@ -98,7 +103,8 @@ composer_header_constructor (GType type,
 		label = gtk_bin_get_child (GTK_BIN (widget));
 	} else {
 		widget = gtk_label_new_with_mnemonic (header->priv->label);
-		gtk_label_set_mnemonic_widget (GTK_LABEL (widget), header->input_widget);
+		gtk_label_set_mnemonic_widget (
+			GTK_LABEL (widget), header->input_widget);
 		label = widget;
 	}
 
@@ -227,7 +233,8 @@ e_composer_header_class_init (EComposerHeaderClass *class)
 			NULL,
 			FALSE,
 			G_PARAM_READWRITE |
-			G_PARAM_CONSTRUCT_ONLY));
+			G_PARAM_CONSTRUCT_ONLY |
+			G_PARAM_STATIC_STRINGS));
 
 	g_object_class_install_property (
 		object_class,
@@ -238,7 +245,8 @@ e_composer_header_class_init (EComposerHeaderClass *class)
 			NULL,
 			NULL,
 			G_PARAM_READWRITE |
-			G_PARAM_CONSTRUCT_ONLY));
+			G_PARAM_CONSTRUCT_ONLY |
+			G_PARAM_STATIC_STRINGS));
 
 	g_object_class_install_property (
 		object_class,
@@ -248,7 +256,8 @@ e_composer_header_class_init (EComposerHeaderClass *class)
 			NULL,
 			NULL,
 			FALSE,
-			G_PARAM_READWRITE));
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
 
 	g_object_class_install_property (
 		object_class,
@@ -258,7 +267,8 @@ e_composer_header_class_init (EComposerHeaderClass *class)
 			NULL,
 			NULL,
 			FALSE,
-			G_PARAM_READWRITE));
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
 
 	signal_ids[CHANGED] = g_signal_new (
 		"changed",
diff --git a/composer/e-composer-header.h b/composer/e-composer-header.h
index 971b559..08db97a 100644
--- a/composer/e-composer-header.h
+++ b/composer/e-composer-header.h
@@ -18,7 +18,7 @@
 #ifndef E_COMPOSER_HEADER_H
 #define E_COMPOSER_HEADER_H
 
-#include "e-composer-common.h"
+#include <composer/e-composer-common.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_HEADER \
diff --git a/composer/e-composer-name-header.c b/composer/e-composer-name-header.c
index a99f1cd..b17cb4a 100644
--- a/composer/e-composer-name-header.c
+++ b/composer/e-composer-name-header.c
@@ -276,11 +276,11 @@ e_composer_name_header_new (const gchar *label,
 {
 	g_return_val_if_fail (E_IS_NAME_SELECTOR (name_selector), NULL);
 
-	return g_object_new (E_TYPE_COMPOSER_NAME_HEADER,
-			     "label", label,
-			     "button", TRUE,
-			     "name-selector", name_selector,
-			     NULL);
+	return g_object_new (
+		E_TYPE_COMPOSER_NAME_HEADER,
+		"label", label, "button", TRUE,
+		"name-selector", name_selector,
+		 NULL);
 }
 
 ENameSelector *
diff --git a/composer/e-composer-name-header.h b/composer/e-composer-name-header.h
index 785f7d1..e2f5e00 100644
--- a/composer/e-composer-name-header.h
+++ b/composer/e-composer-name-header.h
@@ -18,12 +18,10 @@
 #ifndef E_COMPOSER_NAME_HEADER_H
 #define E_COMPOSER_NAME_HEADER_H
 
-#include "e-composer-common.h"
-
 #include <libebook/e-destination.h>
 #include <libedataserverui/e-name-selector.h>
 
-#include "e-composer-header.h"
+#include <composer/e-composer-header.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_NAME_HEADER \
@@ -62,7 +60,6 @@ struct _EComposerNameHeaderClass {
 GType		e_composer_name_header_get_type	(void);
 EComposerHeader * e_composer_name_header_new	(const gchar *label,
 						 ENameSelector *name_selector);
-
 ENameSelector *	e_composer_name_header_get_name_selector
 						(EComposerNameHeader *header);
 EDestination **	e_composer_name_header_get_destinations
diff --git a/composer/e-composer-post-header.h b/composer/e-composer-post-header.h
index c38bfe2..c6fff3e 100644
--- a/composer/e-composer-post-header.h
+++ b/composer/e-composer-post-header.h
@@ -23,7 +23,7 @@
 
 #include <libedataserver/e-account.h>
 
-#include "e-composer-text-header.h"
+#include <composer/e-composer-text-header.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_POST_HEADER \
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index 693fd95..bd7b46a 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -198,7 +198,8 @@ e_composer_private_constructed (EMsgComposer *composer)
 		gtk_widget_hide (widget);
 #endif
 		widget = gtkhtml_editor_get_managed_widget (editor, "/main-toolbar");
-		gtk_toolbar_set_style (GTK_TOOLBAR (widget), GTK_TOOLBAR_BOTH_HORIZ);
+		gtk_toolbar_set_style (
+			GTK_TOOLBAR (widget), GTK_TOOLBAR_BOTH_HORIZ);
 		gtk_widget_hide (widget);
 
 	}
@@ -318,7 +319,7 @@ e_composer_private_constructed (EMsgComposer *composer)
 	/* Construct the attachment paned. */
 
 	if (small_screen_mode) {
-		/* short attachment bar for Anjal */
+		/* Short attachment bar for Anjal. */
 		e_attachment_paned_set_default_height (75);
 		e_attachment_icon_view_set_default_icon_size (GTK_ICON_SIZE_BUTTON);
 	}
diff --git a/composer/e-composer-text-header.c b/composer/e-composer-text-header.c
index 28df51e..3927923 100644
--- a/composer/e-composer-text-header.c
+++ b/composer/e-composer-text-header.c
@@ -89,19 +89,19 @@ e_composer_text_header_init (EComposerTextHeader *header)
 EComposerHeader *
 e_composer_text_header_new_label (const gchar *label)
 {
-	return g_object_new (E_TYPE_COMPOSER_TEXT_HEADER,
-			     "label", label,
-			     "button", FALSE,
-			     NULL);
+	return g_object_new (
+		E_TYPE_COMPOSER_TEXT_HEADER,
+		"label", label, "button", FALSE,
+		NULL);
 }
 
 EComposerHeader *
 e_composer_text_header_new_button (const gchar *label)
 {
-	return g_object_new (E_TYPE_COMPOSER_TEXT_HEADER,
-			     "label", label,
-			     "button", TRUE,
-			     NULL);
+	return g_object_new (
+		E_TYPE_COMPOSER_TEXT_HEADER,
+		"label", label, "button", TRUE,
+		NULL);
 }
 
 const gchar *
@@ -112,6 +112,7 @@ e_composer_text_header_get_text (EComposerTextHeader *header)
 	g_return_val_if_fail (E_IS_COMPOSER_TEXT_HEADER (header), NULL);
 
 	entry = E_COMPOSER_TEXT_HEADER_GET_ENTRY (header);
+
 	return gtk_entry_get_text (entry);
 }
 
@@ -124,5 +125,6 @@ e_composer_text_header_set_text (EComposerTextHeader *header,
 	g_return_if_fail (E_IS_COMPOSER_TEXT_HEADER (header));
 
 	entry = E_COMPOSER_TEXT_HEADER_GET_ENTRY (header);
+
 	gtk_entry_set_text (entry, (text != NULL) ? text : "");
 }
diff --git a/composer/e-composer-text-header.h b/composer/e-composer-text-header.h
index 278b2b1..860fcc3 100644
--- a/composer/e-composer-text-header.h
+++ b/composer/e-composer-text-header.h
@@ -21,8 +21,7 @@
 #ifndef E_COMPOSER_TEXT_HEADER_H
 #define E_COMPOSER_TEXT_HEADER_H
 
-#include "e-composer-common.h"
-#include "e-composer-header.h"
+#include <composer/e-composer-header.h>
 
 /* Standard GObject macros */
 #define E_TYPE_COMPOSER_TEXT_HEADER \
@@ -57,13 +56,12 @@ struct _EComposerTextHeaderClass {
 };
 
 GType		e_composer_text_header_get_type	(void);
-
 EComposerHeader *
-e_composer_text_header_new_label (const gchar *label);
-
+		e_composer_text_header_new_label
+						(const gchar *label);
 EComposerHeader *
-e_composer_text_header_new_button (const gchar *label);
-
+		e_composer_text_header_new_button
+						(const gchar *label);
 const gchar *	e_composer_text_header_get_text	(EComposerTextHeader *header);
 void		e_composer_text_header_set_text (EComposerTextHeader *header,
 						 const gchar *text);
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index c41c401..ba7a7a4 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -522,6 +522,7 @@ build_message_headers (EMsgComposer *composer,
 	if (account != NULL) {
 		CamelMedium *medium;
 		CamelInternetAddress *addr;
+		const gchar *header_name;
 		const gchar *name = account->id->name;
 		const gchar *address = account->id->address;
 		gchar *transport_uid;
@@ -542,18 +543,18 @@ build_message_headers (EMsgComposer *composer,
 		g_object_unref (addr);
 
 		/* X-Evolution-Account */
-		camel_medium_set_header (
-			medium, "X-Evolution-Account", account->uid);
+		header_name = "X-Evolution-Account";
+		camel_medium_set_header (medium, header_name, account->uid);
 
 		/* X-Evolution-Fcc */
-		camel_medium_set_header (
-			medium, "X-Evolution-Fcc", account->sent_folder_uri);
+		header_name = "X-Evolution-Fcc";
+		camel_medium_set_header (medium, header_name, account->sent_folder_uri);
 
 		/* X-Evolution-Transport */
+		header_name = "X-Evolution-Transport";
 		transport_uid = g_strconcat (
 			account->uid, "-transport", NULL);
-		camel_medium_set_header (
-			medium, "X-Evolution-Transport", transport_uid);
+		camel_medium_set_header (medium, header_name, transport_uid);
 		g_free (transport_uid);
 	}
 
@@ -1102,7 +1103,8 @@ composer_build_message (EMsgComposer *composer,
 	/* Disposition-Notification-To */
 	if (flags & COMPOSER_FLAG_REQUEST_READ_RECEIPT) {
 		gchar *mdn_address = account->id->reply_to;
-		if (!mdn_address || !*mdn_address)
+
+		if (mdn_address == NULL || *mdn_address == '\0')
 			mdn_address = account->id->address;
 
 		camel_medium_add_header (
@@ -1501,7 +1503,8 @@ is_top_signature (EMsgComposer *composer)
 	shell = e_msg_composer_get_shell (composer);
 	shell_settings = e_shell_get_shell_settings (shell);
 
-	return e_shell_settings_get_boolean (shell_settings, "composer-top-signature");
+	return e_shell_settings_get_boolean (
+		shell_settings, "composer-top-signature");
 }
 
 static gboolean
diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h
index 296bb35..258d260 100644
--- a/composer/e-msg-composer.h
+++ b/composer/e-msg-composer.h
@@ -33,7 +33,7 @@
 #include <misc/e-web-view.h>
 #include <shell/e-shell.h>
 
-#include "e-composer-header-table.h"
+#include <composer/e-composer-header-table.h>
 
 /* Standard GObject macros */
 #define E_TYPE_MSG_COMPOSER \
diff --git a/doc/reference/shell/tmpl/e-attachment-store.sgml b/doc/reference/shell/tmpl/e-attachment-store.sgml
index f0a8b68..34884ea 100644
--- a/doc/reference/shell/tmpl/e-attachment-store.sgml
+++ b/doc/reference/shell/tmpl/e-attachment-store.sgml
@@ -201,6 +201,7 @@ e-attachment-store
 
 @store: 
 @destination: 
+ filename_prefix: 
 @callback: 
 @user_data: 
 
diff --git a/e-util/e-marshal.list b/e-util/e-marshal.list
index ce8e393..c42078b 100644
--- a/e-util/e-marshal.list
+++ b/e-util/e-marshal.list
@@ -6,6 +6,7 @@ BOOLEAN:INT,INT,OBJECT,INT,INT,UINT
 BOOLEAN:INT,POINTER,INT,BOXED
 BOOLEAN:INT,POINTER,INT,OBJECT,INT,INT,UINT
 BOOLEAN:NONE
+BOOLEAN:OBJECT
 BOOLEAN:OBJECT,DOUBLE,DOUBLE,BOOLEAN
 BOOLEAN:POINTER
 BOOLEAN:POINTER,BOOLEAN,POINTER
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index 0c65908..5768934 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -171,7 +171,7 @@ mail_backend_prepare_for_offline_cb (EShell *shell,
 	}
 
 	e_mail_store_foreach (
-		session, (GFunc) mail_store_prepare_for_offline_cb, activity);
+		backend, (GFunc) mail_store_prepare_for_offline_cb, activity);
 }
 
 /* Helper for mail_backend_prepare_for_online_cb() */
@@ -197,7 +197,7 @@ mail_backend_prepare_for_online_cb (EShell *shell,
 	camel_session_set_online (CAMEL_SESSION (session), TRUE);
 
 	e_mail_store_foreach (
-		session, (GFunc) mail_store_prepare_for_online_cb, activity);
+		backend, (GFunc) mail_store_prepare_for_online_cb, activity);
 }
 
 /* Helper for mail_backend_prepare_for_quit_cb() */
@@ -272,7 +272,6 @@ mail_backend_prepare_for_quit_cb (EShell *shell,
                                   EMailBackend *backend)
 {
 	EAccountList *account_list;
-	EMailSession *session;
 	gboolean delete_junk;
 	gboolean empty_trash;
 
@@ -281,8 +280,6 @@ mail_backend_prepare_for_quit_cb (EShell *shell,
 		gboolean empty_trash;
 	} sync_data;
 
-	session = e_mail_backend_get_session (backend);
-
 	delete_junk = e_mail_backend_delete_junk_policy_decision (backend);
 	empty_trash = e_mail_backend_empty_trash_policy_decision (backend);
 
@@ -298,13 +295,13 @@ mail_backend_prepare_for_quit_cb (EShell *shell,
 
 	if (delete_junk)
 		e_mail_store_foreach (
-			session, (GFunc) mail_backend_delete_junk, backend);
+			backend, (GFunc) mail_backend_delete_junk, backend);
 
 	sync_data.activity = activity;
 	sync_data.empty_trash = empty_trash;
 
 	e_mail_store_foreach (
-		session, (GFunc) mail_backend_final_sync, &sync_data);
+		backend, (GFunc) mail_backend_final_sync, &sync_data);
 
 	/* Now we poll until all activities are actually cancelled or finished.
 	 * Reffing the activity delays quitting; the reference count
@@ -579,7 +576,8 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
 	if (target->new > 0)
 		e_shell_event (e_shell_backend_get_shell (E_SHELL_BACKEND (mail_backend)), "mail-icon", (gpointer) "mail-unread");
 
-	/** @Event: folder.changed
+	/**
+	 * @Event: folder.changed
 	 * @Title: Folder changed
 	 * @Target: EMEventTargetFolder
 	 *
diff --git a/mail/e-mail-migrate.c b/mail/e-mail-migrate.c
index 07b2a8b..10afa58 100644
--- a/mail/e-mail-migrate.c
+++ b/mail/e-mail-migrate.c
@@ -701,7 +701,6 @@ migrate_to_db (EShellBackend *shell_backend)
 	EMMigrateSession *session;
 	EAccountList *accounts;
 	EMailBackend *mail_backend;
-	EMailSession *mail_session;
 	EIterator *iter;
 	gint i = 0, len;
 	CamelStore *store = NULL;
@@ -713,11 +712,10 @@ migrate_to_db (EShellBackend *shell_backend)
 		return;
 
 	mail_backend = E_MAIL_BACKEND (shell_backend);
-	mail_session = e_mail_backend_get_session (mail_backend);
 	data_dir = e_shell_backend_get_data_dir (shell_backend);
 
 	/* Initialize the mail stores early so we can add a new one. */
-	e_mail_store_init (mail_session, data_dir);
+	e_mail_store_init (mail_backend, data_dir);
 
 	iter = e_list_get_iterator ((EList *) accounts);
 	len = e_list_length ((EList *) accounts);
@@ -772,7 +770,7 @@ migrate_to_db (EShellBackend *shell_backend)
 		    && strncmp (service->url, "mbox:", 5) != 0) {
 
 			store = e_mail_store_add_by_account (
-				mail_session, account);
+				mail_backend, account);
 
 			info = camel_store_get_folder_info_sync (
 				store, NULL,
@@ -1020,7 +1018,6 @@ create_mbox_account (EShellBackend *shell_backend,
                      EMMigrateSession *session)
 {
 	EMailBackend *mail_backend;
-	EMailSession *mail_session;
 	CamelStore *store;
 	CamelURL *url;
 	EAccountList *accounts;
@@ -1029,11 +1026,10 @@ create_mbox_account (EShellBackend *shell_backend,
 	gchar *name, *id, *temp, *uri, *folder_uri;
 
 	mail_backend = E_MAIL_BACKEND (shell_backend);
-	mail_session = e_mail_backend_get_session (mail_backend);
 	data_dir = e_shell_backend_get_data_dir (shell_backend);
 
 	/* Initialize the mail stores early so we can add a new one. */
-	e_mail_store_init (mail_session, data_dir);
+	e_mail_store_init (mail_backend, data_dir);
 
 	account = e_account_new ();
 	account->enabled = TRUE;
@@ -1067,7 +1063,7 @@ create_mbox_account (EShellBackend *shell_backend,
 	}
 
 	e_account_list_add (accounts, account);
-	store = e_mail_store_add_by_account (mail_session, account);
+	store = e_mail_store_add_by_account (mail_backend, account);
 
 	folder_uri = e_mail_folder_uri_build (store, "Sent");
 	e_account_set_string (
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 4cc9465..725a0c6 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -287,7 +287,6 @@ e_mail_reader_mark_as_read (EMailReader *reader,
                             const gchar *uid)
 {
 	EMailBackend *backend;
-	EMailSession *session;
 	EMFormatHTML *formatter;
 	CamelFolder *folder;
 	guint32 mask, set;
@@ -300,15 +299,13 @@ e_mail_reader_mark_as_read (EMailReader *reader,
 	backend = e_mail_reader_get_backend (reader);
 	formatter = e_mail_reader_get_formatter (reader);
 
-	session = e_mail_backend_get_session (backend);
-
 	flags = camel_folder_get_message_flags (folder, uid);
 
 	if (!(flags & CAMEL_MESSAGE_SEEN)) {
 		CamelMimeMessage *message;
 
 		message = EM_FORMAT (formatter)->message;
-		em_utils_handle_receipt (session, folder, uid, message);
+		em_utils_handle_receipt (backend, folder, uid, message);
 	}
 
 	mask = CAMEL_MESSAGE_SEEN;
diff --git a/mail/e-mail-session-utils.c b/mail/e-mail-session-utils.c
index 5522124..217e7e2 100644
--- a/mail/e-mail-session-utils.c
+++ b/mail/e-mail-session-utils.c
@@ -695,14 +695,14 @@ e_mail_session_send_to (EMailSession *session,
 		sent_folder_uri = g_strdup (account->sent_folder_uri);
 	}
 
-	string = camel_header_raw_find (&xev, "X-Evolution-Transport", NULL);
-	if (transport_uid == NULL && string != NULL)
-		transport_uid = g_strstrip (g_strdup (string));
-
 	string = camel_header_raw_find (&xev, "X-Evolution-Fcc", NULL);
 	if (sent_folder_uri == NULL && string != NULL)
 		sent_folder_uri = g_strstrip (g_strdup (string));
 
+	string = camel_header_raw_find (&xev, "X-Evolution-Transport", NULL);
+	if (transport_uid == NULL && string != NULL)
+		transport_uid = g_strstrip (g_strdup (string));
+
 	post_to_uris = g_ptr_array_new ();
 	for (header = xev; header != NULL; header = header->next) {
 		gchar *folder_uri;
diff --git a/mail/e-mail-session.c b/mail/e-mail-session.c
index 333ee74..d716357 100644
--- a/mail/e-mail-session.c
+++ b/mail/e-mail-session.c
@@ -398,10 +398,17 @@ static guint preparing_flush = 0;
 static gboolean
 forward_to_flush_outbox_cb (EMailSession *session)
 {
+	EShell *shell;
+	EShellBackend *shell_backend;
+
 	g_return_val_if_fail (preparing_flush != 0, FALSE);
 
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
+	g_return_val_if_fail (E_IS_MAIL_BACKEND (shell_backend), FALSE);
+
 	preparing_flush = 0;
-	mail_send (session);
+	mail_send (E_MAIL_BACKEND (shell_backend));
 
 	return FALSE;
 }
@@ -458,8 +465,8 @@ set_socks_proxy_from_gsettings (CamelSession *session)
 
 static void
 proxy_gsettings_changed_cb (GSettings *settings,
-			    const gchar *key,
-			    CamelSession *session)
+                            const gchar *key,
+                            CamelSession *session)
 {
 	set_socks_proxy_from_gsettings (session);
 }
diff --git a/mail/e-mail-store.c b/mail/e-mail-store.c
index fe54dd0..885e34b 100644
--- a/mail/e-mail-store.c
+++ b/mail/e-mail-store.c
@@ -182,10 +182,11 @@ special_mail_store_is_enabled (CamelStore *store)
 }
 
 static void
-mail_store_add (EMailSession *session,
+mail_store_add (EMailBackend *backend,
                 CamelStore *store,
                 AddStoreCallback callback)
 {
+	EMailSession *session;
 	EMFolderTreeModel *default_model;
 	MailFolderCache *folder_cache;
 	StoreInfo *store_info;
@@ -194,6 +195,7 @@ mail_store_add (EMailSession *session,
 	g_return_if_fail (store != NULL);
 	g_return_if_fail (CAMEL_IS_STORE (store));
 
+	session = e_mail_backend_get_session (backend);
 	default_model = em_folder_tree_model_get_default ();
 	folder_cache = e_mail_session_get_folder_cache (session);
 
@@ -228,23 +230,26 @@ mail_store_add_local_done_cb (MailFolderCache *folder_cache,
 }
 
 static void
-mail_store_load_accounts (EMailSession *session,
+mail_store_load_accounts (EMailBackend *backend,
                           const gchar *data_dir)
 {
 	CamelStore *local_store;
+	EMailSession *session;
 	EAccountList *account_list;
 	EIterator *iter;
 
-	/* Set up the local store. */
+	session = e_mail_backend_get_session (backend);
+
+	/* Add the local store. */
 
 	e_mail_local_init (session, data_dir);
 	local_store = e_mail_local_get_store ();
 
 	mail_store_add (
-		session, local_store, (AddStoreCallback)
+		backend, local_store, (AddStoreCallback)
 		mail_store_add_local_done_cb);
 
-	/* Set up remote stores. */
+	/* Add mail accounts.. */
 
 	account_list = e_get_account_list ();
 
@@ -257,19 +262,19 @@ mail_store_load_accounts (EMailSession *session,
 		if (!account->enabled)
 			continue;
 
-		e_mail_store_add_by_account (session, account);
+		e_mail_store_add_by_account (backend, account);
 	}
 
 	g_object_unref (iter);
 }
 
 void
-e_mail_store_init (EMailSession *session,
+e_mail_store_init (EMailBackend *backend,
                    const gchar *data_dir)
 {
 	static gboolean initialized = FALSE;
 
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 
 	/* This function is idempotent because mail
 	 * migration code may need to call it early. */
@@ -283,34 +288,37 @@ e_mail_store_init (EMailSession *session,
 		(GDestroyNotify) NULL,
 		(GDestroyNotify) store_table_free);
 
-	mail_store_load_accounts (session, data_dir);
+	mail_store_load_accounts (backend, data_dir);
 
 	initialized = TRUE;
 }
 
 void
-e_mail_store_add (EMailSession *session,
+e_mail_store_add (EMailBackend *backend,
                   CamelStore *store)
 {
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 	g_return_if_fail (CAMEL_IS_STORE (store));
 
-	mail_store_add (session, store, NULL);
+	mail_store_add (backend, store, NULL);
 }
 
 CamelStore *
-e_mail_store_add_by_account (EMailSession *session,
+e_mail_store_add_by_account (EMailBackend *backend,
                              EAccount *account)
 {
+	EMailSession *session;
 	CamelService *service = NULL;
 	CamelProvider *provider;
 	CamelURL *url;
 	gboolean skip, transport_only;
 	GError *error = NULL;
 
-	g_return_val_if_fail (E_IS_MAIL_SESSION (session), NULL);
+	g_return_val_if_fail (E_IS_MAIL_BACKEND (backend), NULL);
 	g_return_val_if_fail (E_IS_ACCOUNT (account), NULL);
 
+	session = e_mail_backend_get_session (backend);
+
 	/* check whether it's transport-only accounts */
 	transport_only = !account->source || !account->source->url || !*account->source->url;
 	if (transport_only)
@@ -376,7 +384,7 @@ handle_transport:
 	}
 
 	if (!skip && (provider->flags & CAMEL_PROVIDER_IS_STORAGE))
-		e_mail_store_add (session, CAMEL_STORE (service));
+		e_mail_store_add (backend, CAMEL_STORE (service));
 
 	return CAMEL_STORE (service);
 
@@ -392,16 +400,19 @@ fail:
 }
 
 void
-e_mail_store_remove (EMailSession *session,
+e_mail_store_remove (EMailBackend *backend,
                      CamelStore *store)
 {
+	EMailSession *session;
 	MailFolderCache *folder_cache;
 	EMFolderTreeModel *default_model;
 
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 	g_return_if_fail (CAMEL_IS_STORE (store));
 	g_return_if_fail (store_table != NULL);
 
+	session = e_mail_backend_get_session (backend);
+
 	/* Because the store table holds a reference to each store used
 	 * as a key in it, none of them will ever be gc'ed, meaning any
 	 * call to camel_session_get_{service,store} with the same URL
@@ -426,43 +437,48 @@ e_mail_store_remove (EMailSession *session,
 }
 
 void
-e_mail_store_remove_by_account (EMailSession *session,
+e_mail_store_remove_by_account (EMailBackend *backend,
                                 EAccount *account)
 {
+	EMailSession *session;
 	CamelService *service;
 	CamelProvider *provider;
+	const gchar *uid;
 
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 	g_return_if_fail (E_IS_ACCOUNT (account));
 
-	provider = camel_provider_get (account->source->url, NULL);
-	if (provider == NULL)
-		return;
+	uid = account->uid;
+	session = e_mail_backend_get_session (backend);
 
-	if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE))
-		return;
+	service = camel_session_get_service (CAMEL_SESSION (session), uid);
+	g_return_if_fail (CAMEL_IS_STORE (service));
 
-	service = camel_session_get_service (
-		CAMEL_SESSION (session), account->uid);
+	provider = camel_service_get_provider (service);
+	g_return_if_fail (provider != NULL);
 
-	g_return_if_fail (CAMEL_IS_STORE (service));
+	if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE))
+		return;
 
-	e_mail_store_remove (session, CAMEL_STORE (service));
+	e_mail_store_remove (backend, CAMEL_STORE (service));
 }
 
 void
-e_mail_store_foreach (EMailSession *session,
+e_mail_store_foreach (EMailBackend *backend,
                       GFunc func,
                       gpointer user_data)
 {
+	EMailSession *session;
 	GList *list, *link;
 
 	/* XXX This is a silly convenience function.
 	 *     Could probably just get rid of it. */
 
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 	g_return_if_fail (func != NULL);
 
+	session = e_mail_backend_get_session (backend);
+
 	list = camel_session_list_services (CAMEL_SESSION (session));
 
 	for (link = list; link != NULL; link = g_list_next (link)) {
diff --git a/mail/e-mail-store.h b/mail/e-mail-store.h
index 5dca416..2c676d4 100644
--- a/mail/e-mail-store.h
+++ b/mail/e-mail-store.h
@@ -23,22 +23,22 @@
 #define E_MAIL_STORE_H
 
 #include <camel/camel.h>
-#include <mail/e-mail-session.h>
+#include <mail/e-mail-backend.h>
 #include <libedataserver/e-account.h>
 
 G_BEGIN_DECLS
 
-void		e_mail_store_init		(EMailSession *session,
+void		e_mail_store_init		(EMailBackend *backend,
 						 const gchar *data_dir);
-void		e_mail_store_add		(EMailSession *session,
+void		e_mail_store_add		(EMailBackend *backend,
 						 CamelStore *store);
-CamelStore *	e_mail_store_add_by_account	(EMailSession *session,
+CamelStore *	e_mail_store_add_by_account	(EMailBackend *backend,
 						 EAccount *account);
-void		e_mail_store_remove		(EMailSession *session,
+void		e_mail_store_remove		(EMailBackend *backend,
 						 CamelStore *store);
-void		e_mail_store_remove_by_account	(EMailSession *session,
+void		e_mail_store_remove_by_account	(EMailBackend *backend,
 						 EAccount *account);
-void		e_mail_store_foreach		(EMailSession *session,
+void		e_mail_store_foreach		(EMailBackend *backend,
 						 GFunc func,
 						 gpointer user_data);
 
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c
index 5f2289a..8ec881b 100644
--- a/mail/em-account-editor.c
+++ b/mail/em-account-editor.c
@@ -4108,11 +4108,9 @@ emae_commit (EConfig *ec,
 		    && emae->priv->source.provider
 		    && (emae->priv->source.provider->flags & CAMEL_PROVIDER_IS_STORAGE)) {
 			EMailBackend *backend;
-			EMailSession *session;
 
 			backend = em_account_editor_get_backend (emae);
-			session = e_mail_backend_get_session (backend);
-			e_mail_store_add_by_account (session, account);
+			e_mail_store_add_by_account (backend, account);
 		}
 	}
 
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 1dfa3c4..837cc31 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -1750,7 +1750,7 @@ em_utils_forward_messages (EMailReader *reader,
                            CamelFolder *folder,
                            GPtrArray *uids,
                            EMailForwardStyle style,
-			   GtkWidget *destroy_when_done)
+                           GtkWidget *destroy_when_done)
 {
 	EActivity *activity;
 	AsyncContext *context;
@@ -1846,7 +1846,7 @@ em_utils_redirect_message (EShell *shell,
 
 /* Message disposition notifications, rfc 2298 */
 void
-em_utils_handle_receipt (EMailSession *session,
+em_utils_handle_receipt (EMailBackend *backend,
                          CamelFolder *folder,
                          const gchar *message_uid,
                          CamelMimeMessage *message)
@@ -1855,7 +1855,7 @@ em_utils_handle_receipt (EMailSession *session,
 	const gchar *addr;
 	CamelMessageInfo *info;
 
-	g_return_if_fail (E_IS_MAIL_SESSION (session));
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
 	g_return_if_fail (CAMEL_IS_FOLDER (folder));
 	g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
 
@@ -1911,23 +1911,23 @@ em_utils_handle_receipt (EMailSession *session,
 			return;
 	}
 
-	em_utils_send_receipt (session, folder, message);
+	em_utils_send_receipt (backend, folder, message);
 }
 
 static void
 em_utils_receipt_done (CamelFolder *folder,
                        GAsyncResult *result,
-                       EMailSession *session)
+                       EMailBackend *backend)
 {
 	/* FIXME Poor error handling. */
 	if (!e_mail_folder_append_message_finish (folder, result, NULL, NULL))
 		return;
 
-	mail_send (session);
+	mail_send (backend);
 }
 
 void
-em_utils_send_receipt (EMailSession *session,
+em_utils_send_receipt (EMailBackend *backend,
                        CamelFolder *folder,
                        CamelMimeMessage *message)
 {
@@ -2102,7 +2102,7 @@ em_utils_send_receipt (EMailSession *session,
 	/* FIXME Pass a GCancellable. */
 	e_mail_folder_append_message (
 		out_folder, receipt, info, G_PRIORITY_DEFAULT, NULL,
-		(GAsyncReadyCallback) em_utils_receipt_done, session);
+		(GAsyncReadyCallback) em_utils_receipt_done, backend);
 
 	camel_message_info_free (info);
 }
@@ -2485,18 +2485,24 @@ concat_unique_addrs (CamelInternetAddress *dest,
 	}
 }
 
-static void
-get_reply_all (CamelMimeMessage *message,
-               CamelInternetAddress *to,
-               CamelInternetAddress *cc,
-               CamelNNTPAddress *postto)
+void
+em_utils_get_reply_all (CamelMimeMessage *message,
+                        CamelInternetAddress *to,
+                        CamelInternetAddress *cc,
+                        CamelNNTPAddress *postto)
 {
-	CamelInternetAddress *reply_to, *to_addrs, *cc_addrs;
+	CamelInternetAddress *reply_to;
+	CamelInternetAddress *to_addrs;
+	CamelInternetAddress *cc_addrs;
 	CamelMedium *medium;
 	const gchar *name, *addr;
 	const gchar *posthdr = NULL;
 	GHashTable *rcpt_hash;
 
+	g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
+	g_return_if_fail (CAMEL_IS_INTERNET_ADDRESS (to));
+	g_return_if_fail (CAMEL_IS_INTERNET_ADDRESS (cc));
+
 	medium = CAMEL_MEDIUM (message);
 
 	/* check whether there is a 'Newsgroups: ' header in there */
@@ -2512,8 +2518,10 @@ get_reply_all (CamelMimeMessage *message,
 	rcpt_hash = em_utils_generate_account_hash ();
 
 	reply_to = get_reply_to (message);
-	to_addrs = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO);
-	cc_addrs = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC);
+	to_addrs = camel_mime_message_get_recipients (
+		message, CAMEL_RECIPIENT_TYPE_TO);
+	cc_addrs = camel_mime_message_get_recipients (
+		message, CAMEL_RECIPIENT_TYPE_CC);
 
 	if (reply_to != NULL) {
 		gint ii = 0;
@@ -2556,15 +2564,6 @@ get_reply_all (CamelMimeMessage *message,
 	g_hash_table_destroy (rcpt_hash);
 }
 
-void
-em_utils_get_reply_all (CamelMimeMessage *message,
-                        CamelInternetAddress *to,
-                        CamelInternetAddress *cc,
-                        CamelNNTPAddress *postto)
-{
-	get_reply_all (message, to, cc, postto);
-}
-
 enum {
 	ATTRIB_UNKNOWN,
 	ATTRIB_CUSTOM,
@@ -2947,7 +2946,7 @@ em_utils_reply_to_message (EShell *shell,
 		if (folder)
 			postto = camel_nntp_address_new ();
 
-		get_reply_all (message, to, cc, postto);
+		em_utils_get_reply_all (message, to, cc, postto);
 		break;
 	}
 
diff --git a/mail/em-composer-utils.h b/mail/em-composer-utils.h
index 3dba3e9..bd6eb7c 100644
--- a/mail/em-composer-utils.h
+++ b/mail/em-composer-utils.h
@@ -25,9 +25,9 @@
 #define EM_COMPOSER_UTILS_H
 
 #include <em-format/em-format.h>
+#include <mail/e-mail-backend.h>
 #include <mail/e-mail-enums.h>
 #include <mail/e-mail-reader.h>
-#include <mail/e-mail-session.h>
 #include <composer/e-msg-composer.h>
 
 G_BEGIN_DECLS
@@ -58,11 +58,11 @@ void		em_utils_forward_messages	(EMailReader *reader,
 						 GtkWidget *destroy_when_done);
 void		em_utils_redirect_message	(EShell *shell,
 						 CamelMimeMessage *message);
-void		em_utils_handle_receipt		(EMailSession *session,
+void		em_utils_handle_receipt		(EMailBackend *backend,
 						 CamelFolder *folder,
 						 const gchar *message_uid,
 						 CamelMimeMessage *message);
-void		em_utils_send_receipt		(EMailSession *session,
+void		em_utils_send_receipt		(EMailBackend *backend,
 						 CamelFolder *folder,
 						 CamelMimeMessage *message);
 gchar *		em_utils_construct_composer_text
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 5f8e9dd..1e78407 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -34,11 +34,11 @@
 #include <errno.h>
 #include <sys/stat.h>
 
+#include <glib/gi18n.h>
+
 #include "e-util/e-util.h"
 #include "e-util/e-account-utils.h"
 
-#include <glib/gi18n.h>
-
 #include "mail-tools.h"
 #include "mail-mt.h"
 #include "mail-ops.h"
@@ -288,12 +288,10 @@ account_added_cb (EAccountList *accounts,
                   EMFolderTreeModel *model)
 {
 	EMailBackend *backend;
-	EMailSession *session;
 
 	backend = em_folder_tree_model_get_backend (model);
-	session = e_mail_backend_get_session (backend);
 
-	e_mail_store_add_by_account (session, account);
+	e_mail_store_add_by_account (backend, account);
 }
 
 static void
@@ -458,7 +456,6 @@ folder_tree_model_get_property (GObject *object,
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 }
 
-
 static void
 folder_tree_model_dispose (GObject *object)
 {
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 061c354..1d831cc 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -1780,17 +1780,15 @@ em_folder_tree_new_with_model (EMailBackend *backend,
                                EAlertSink *alert_sink,
                                EMFolderTreeModel *model)
 {
-	EMailSession *session;
 	const gchar *data_dir;
 
 	g_return_val_if_fail (E_IS_MAIL_BACKEND (backend), NULL);
 	g_return_val_if_fail (E_IS_ALERT_SINK (alert_sink), NULL);
 	g_return_val_if_fail (EM_IS_FOLDER_TREE_MODEL (model), NULL);
 
-	session = e_mail_backend_get_session (backend);
 	data_dir = e_shell_backend_get_data_dir (E_SHELL_BACKEND (backend));
 
-	e_mail_store_init (session, data_dir);
+	e_mail_store_init (backend, data_dir);
 
 	return g_object_new (
 		EM_TYPE_FOLDER_TREE,
diff --git a/mail/em-subscription-editor.c b/mail/em-subscription-editor.c
index e2452d7..09b74bc 100644
--- a/mail/em-subscription-editor.c
+++ b/mail/em-subscription-editor.c
@@ -51,7 +51,7 @@ typedef struct _AsyncContext AsyncContext;
 typedef struct _StoreData StoreData;
 
 struct _EMSubscriptionEditorPrivate {
-	CamelSession *session;
+	EMailBackend *backend;
 	CamelStore *initial_store;
 
 	GtkWidget *combo_box;		/* not referenced */
@@ -95,7 +95,7 @@ struct _StoreData {
 
 enum {
 	PROP_0,
-	PROP_SESSION,
+	PROP_BACKEND,
 	PROP_STORE
 };
 
@@ -932,13 +932,13 @@ subscription_editor_set_store (EMSubscriptionEditor *editor,
 }
 
 static void
-subscription_editor_set_session (EMSubscriptionEditor *editor,
-                                 CamelSession *session)
+subscription_editor_set_backend (EMSubscriptionEditor *editor,
+                                 EMailBackend *backend)
 {
-	g_return_if_fail (CAMEL_IS_SESSION (session));
-	g_return_if_fail (editor->priv->session == NULL);
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
+	g_return_if_fail (editor->priv->backend == NULL);
 
-	editor->priv->session = g_object_ref (session);
+	editor->priv->backend = g_object_ref (backend);
 }
 
 static void
@@ -948,8 +948,8 @@ subscription_editor_set_property (GObject *object,
                                   GParamSpec *pspec)
 {
 	switch (property_id) {
-		case PROP_SESSION:
-			subscription_editor_set_session (
+		case PROP_BACKEND:
+			subscription_editor_set_backend (
 				EM_SUBSCRIPTION_EDITOR (object),
 				g_value_get_object (value));
 			return;
@@ -971,10 +971,10 @@ subscription_editor_get_property (GObject *object,
                                   GParamSpec *pspec)
 {
 	switch (property_id) {
-		case PROP_SESSION:
+		case PROP_BACKEND:
 			g_value_set_object (
 				value,
-				em_subscription_editor_get_session (
+				em_subscription_editor_get_backend (
 				EM_SUBSCRIPTION_EDITOR (object)));
 			return;
 
@@ -996,9 +996,9 @@ subscription_editor_dispose (GObject *object)
 
 	priv = EM_SUBSCRIPTION_EDITOR_GET_PRIVATE (object);
 
-	if (priv->session != NULL) {
-		g_object_unref (priv->session);
-		priv->session = NULL;
+	if (priv->backend != NULL) {
+		g_object_unref (priv->backend);
+		priv->backend = NULL;
 	}
 
 	if (priv->initial_store != NULL) {
@@ -1044,14 +1044,17 @@ subscription_editor_constructed (GObject *object)
 	if (editor->priv->initial_store == NULL) {
 		EAccount *account;
 		CamelService *service;
-		CamelSession *session;
-		const gchar *uid;
+		EMailBackend *backend;
+		EMailSession *session;
 
 		account = e_get_default_account ();
-		uid = account->uid;
 
-		session = em_subscription_editor_get_session (editor);
-		service = camel_session_get_service (session, uid);
+		backend = em_subscription_editor_get_backend (editor);
+		session = e_mail_backend_get_session (backend);
+
+		service = camel_session_get_service (
+			CAMEL_SESSION (session),
+			account->uid);
 
 		if (CAMEL_IS_SUBSCRIBABLE (service))
 			editor->priv->initial_store = g_object_ref (service);
@@ -1122,12 +1125,12 @@ em_subscription_editor_class_init (EMSubscriptionEditorClass *class)
 
 	g_object_class_install_property (
 		object_class,
-		PROP_SESSION,
+		PROP_BACKEND,
 		g_param_spec_object (
-			"session",
+			"backend",
 			NULL,
 			NULL,
-			CAMEL_TYPE_SESSION,
+			E_TYPE_MAIL_BACKEND,
 			G_PARAM_READWRITE |
 			G_PARAM_CONSTRUCT_ONLY |
 			G_PARAM_STATIC_STRINGS));
@@ -1343,26 +1346,26 @@ em_subscription_editor_init (EMSubscriptionEditor *editor)
 
 GtkWidget *
 em_subscription_editor_new (GtkWindow *parent,
-                            CamelSession *session,
+                            EMailBackend *backend,
                             CamelStore *initial_store)
 {
 	g_return_val_if_fail (GTK_IS_WINDOW (parent), NULL);
-	g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL);
+	g_return_val_if_fail (E_IS_MAIL_BACKEND (backend), NULL);
 
 	return g_object_new (
 		EM_TYPE_SUBSCRIPTION_EDITOR,
-		"session", session,
+		"backend", backend,
 		"store", initial_store,
 		"transient-for", parent,
 		NULL);
 }
 
-CamelSession *
-em_subscription_editor_get_session (EMSubscriptionEditor *editor)
+EMailBackend *
+em_subscription_editor_get_backend (EMSubscriptionEditor *editor)
 {
 	g_return_val_if_fail (EM_IS_SUBSCRIPTION_EDITOR (editor), NULL);
 
-	return editor->priv->session;
+	return editor->priv->backend;
 }
 
 CamelStore *
diff --git a/mail/em-subscription-editor.h b/mail/em-subscription-editor.h
index d753477..80b371f 100644
--- a/mail/em-subscription-editor.h
+++ b/mail/em-subscription-editor.h
@@ -21,6 +21,7 @@
 
 #include <gtk/gtk.h>
 #include <camel/camel.h>
+#include <mail/e-mail-backend.h>
 
 /* Standard GObject macros */
 #define EM_TYPE_SUBSCRIPTION_EDITOR \
@@ -58,9 +59,9 @@ struct _EMSubscriptionEditorClass {
 
 GType		em_subscription_editor_get_type	(void);
 GtkWidget *	em_subscription_editor_new	(GtkWindow *parent,
-						 CamelSession *session,
+						 EMailBackend *backend,
 						 CamelStore *initial_store);
-CamelSession *	em_subscription_editor_get_session
+EMailBackend *	em_subscription_editor_get_backend
 						(EMSubscriptionEditor *editor);
 CamelStore *	em_subscription_editor_get_store
 						(EMSubscriptionEditor *editor);
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 4a74a80..6797888 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -2316,7 +2316,8 @@ free_account_sort_order_cache (void)
 }
 
 static void
-fill_accounts_sort_order_cache (EMailBackend *backend, gboolean force_reload)
+fill_accounts_sort_order_cache (EMailBackend *backend,
+                                gboolean force_reload)
 {
 	GSList *account_uids;
 
@@ -2380,7 +2381,8 @@ emu_get_sort_order_key_file (EMailBackend *backend)
 }
 
 void
-em_utils_save_accounts_sort_order (EMailBackend *backend, const GSList *account_uids)
+em_utils_save_accounts_sort_order (EMailBackend *backend,
+                                   const GSList *account_uids)
 {
 	gchar *filename;
 	GKeyFile *key_file;
@@ -2445,7 +2447,8 @@ em_utils_load_accounts_sort_order (EMailBackend *backend)
 }
 
 guint
-em_utils_get_account_sort_order (EMailBackend *backend, const gchar *account_uid)
+em_utils_get_account_sort_order (EMailBackend *backend,
+                                 const gchar *account_uid)
 {
 	guint res;
 
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index 0e1ac98..30bbce6 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -39,8 +39,8 @@
 #include <glib/gstdio.h>
 
 #include <libedataserver/e-data-server-util.h>
-#include "e-util/e-marshal.h"
-#include "e-util/e-util.h"
+#include <e-util/e-marshal.h>
+#include <e-util/e-util.h>
 
 #include "mail-mt.h"
 #include "mail-folder-cache.h"
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 2c4b306..0ff745e 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -452,7 +452,7 @@ static const gchar *resent_recipients[] = {
 struct _send_queue_msg {
 	MailMsg base;
 
-	EMailSession *session;
+	EMailBackend *backend;
 	CamelFolder *queue;
 	CamelTransport *transport;
 
@@ -483,6 +483,7 @@ mail_send_message (struct _send_queue_msg *m,
                    GError **error)
 {
 	EAccount *account = NULL;
+	EMailSession *session;
 	const CamelInternetAddress *iaddr;
 	CamelAddress *from, *recipients;
 	CamelMessageInfo *info = NULL;
@@ -504,11 +505,13 @@ mail_send_message (struct _send_queue_msg *m,
 
 	camel_medium_set_header (CAMEL_MEDIUM (message), "X-Mailer", x_mailer);
 
-	err = g_string_new("");
+	err = g_string_new ("");
 	xev = mail_tool_remove_xevolution_headers (message);
 
-	tmp = camel_header_raw_find(&xev, "X-Evolution-Account", NULL);
-	if (tmp) {
+	session = e_mail_backend_get_session (m->backend);
+
+	tmp = camel_header_raw_find (&xev, "X-Evolution-Account", NULL);
+	if (tmp != NULL) {
 		gchar *name;
 
 		name = g_strstrip (g_strdup (tmp));
@@ -522,7 +525,7 @@ mail_send_message (struct _send_queue_msg *m,
 				transport_uid = g_strconcat (
 					account->uid, "-transport", NULL);
 				service = camel_session_get_service (
-					CAMEL_SESSION (m->session),
+					CAMEL_SESSION (session),
 					transport_uid);
 				g_free (transport_uid);
 
@@ -607,7 +610,7 @@ mail_send_message (struct _send_queue_msg *m,
 		uri = g_strstrip (g_strdup (header->value));
 		/* FIXME Not passing a GCancellable or GError here. */
 		folder = e_mail_session_uri_to_folder_sync (
-			m->session, uri, 0, NULL, NULL);
+			session, uri, 0, NULL, NULL);
 		if (folder) {
 			/* FIXME Not passing a GCancellable or GError here. */
 			camel_folder_append_message_sync (
@@ -647,7 +650,7 @@ mail_send_message (struct _send_queue_msg *m,
 
 		if (sent_folder_uri) {
 			folder = e_mail_session_uri_to_folder_sync (
-				m->session, sent_folder_uri, 0,
+				session, sent_folder_uri, 0,
 				cancellable, &local_error);
 			if (folder == NULL) {
 				g_string_append_printf (
@@ -714,7 +717,7 @@ mail_send_message (struct _send_queue_msg *m,
 	if (local_error == NULL) {
 		/* Mark the draft message for deletion, if present. */
 		e_mail_session_handle_draft_headers_sync (
-			m->session, message, cancellable, &local_error);
+			session, message, cancellable, &local_error);
 		if (local_error != NULL) {
 			g_warning ("%s: Failed to handle draft headers: %s", G_STRFUNC, local_error->message);
 			g_clear_error (&local_error);
@@ -724,7 +727,7 @@ mail_send_message (struct _send_queue_msg *m,
 		 * Source message refers to the message being forwarded
 		 * or replied to. */
 		e_mail_session_handle_source_headers_sync (
-			m->session, message, cancellable, &local_error);
+			session, message, cancellable, &local_error);
 		if (local_error != NULL) {
 			g_warning ("%s: Failed to handle source headers: %s", G_STRFUNC, local_error->message);
 			g_clear_error (&local_error);
@@ -766,8 +769,6 @@ exit:
 	camel_header_raw_clear (&xev);
 	g_string_free (err, TRUE);
 	g_object_unref (message);
-
-	return;
 }
 
 /* ** SEND MAIL QUEUE ***************************************************** */
@@ -930,8 +931,8 @@ send_queue_desc (struct _send_queue_msg *m)
 static void
 send_queue_free (struct _send_queue_msg *m)
 {
-	if (m->session != NULL)
-		g_object_unref (m->session);
+	if (m->backend != NULL)
+		g_object_unref (m->backend);
 	if (m->driver != NULL)
 		g_object_unref (m->driver);
 	if (m->transport != NULL)
@@ -950,7 +951,7 @@ static MailMsgInfo send_queue_info = {
 /* same interface as fetch_mail, just 'cause i'm lazy today
  * (and we need to run it from the same spot?) */
 void
-mail_send_queue (EMailSession *session,
+mail_send_queue (EMailBackend *backend,
                  CamelFolder *queue,
                  CamelTransport *transport,
                  const gchar *type,
@@ -962,10 +963,15 @@ mail_send_queue (EMailSession *session,
                  void (*done)(gpointer data),
                  gpointer data)
 {
+	EMailSession *session;
 	struct _send_queue_msg *m;
 
+	g_return_if_fail (E_IS_MAIL_BACKEND (backend));
+
+	session = e_mail_backend_get_session (backend);
+
 	m = mail_msg_new (&send_queue_info);
-	m->session = g_object_ref (session);
+	m->backend = g_object_ref (backend);
 	m->queue = g_object_ref (queue);
 	m->transport = g_object_ref (transport);
 	if (G_IS_CANCELLABLE (cancellable))
diff --git a/mail/mail-ops.h b/mail/mail-ops.h
index 32784be..4ec64cc 100644
--- a/mail/mail-ops.h
+++ b/mail/mail-ops.h
@@ -63,7 +63,7 @@ void mail_xfer_folder (const gchar *src_uri, const gchar *dest_uri, gboolean rem
 		       gpointer data);
 
 /* yeah so this is messy, but it does a lot, maybe i can consolidate all user_data's to be the one */
-void		mail_send_queue			(EMailSession *session,
+void		mail_send_queue			(EMailBackend *backend,
 						 CamelFolder *queue,
 						 CamelTransport *transport,
 						 const gchar *type,
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 5fda76d..33ac977 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -107,7 +107,7 @@ typedef enum {
 
 struct _send_info {
 	send_info_t type;		/* 0 = fetch, 1 = send */
-	EMailSession *session;
+	EMailBackend *backend;
 	GCancellable *cancellable;
 	gchar *service_uid;
 	gboolean keep_on_server;
@@ -151,8 +151,8 @@ free_folder_info (struct _folder_info *info)
 static void
 free_send_info (struct _send_info *info)
 {
-	if (info->session)
-		g_object_unref (info->session);
+	if (info->backend)
+		g_object_unref (info->backend);
 	if (info->cancellable)
 		g_object_unref (info->cancellable);
 	g_free (info->service_uid);
@@ -425,7 +425,7 @@ get_receive_type (CamelURL *url)
 
 static struct _send_data *
 build_dialog (GtkWindow *parent,
-              EMailSession *session,
+              EMailBackend *backend,
               EAccountList *accounts,
               CamelFolder *outbox,
               EAccount *outgoing_account,
@@ -552,7 +552,7 @@ build_dialog (GtkWindow *parent,
 
 			info = g_malloc0 (sizeof (*info));
 			info->type = type;
-			info->session = g_object_ref (session);
+			info->backend = g_object_ref (backend);
 
 			d(printf("adding source %s\n", source->url));
 
@@ -802,21 +802,24 @@ receive_done (gpointer data)
 
 	/* if we've been called to run again - run again */
 	if (info->type == SEND_SEND && info->state == SEND_ACTIVE && info->again) {
+		EMailSession *session;
 		CamelFolder *local_outbox;
 		CamelService *service;
 
+		session = e_mail_backend_get_session (info->backend);
+
 		local_outbox = e_mail_local_get_folder (
 			E_MAIL_LOCAL_FOLDER_OUTBOX);
 
 		service = camel_session_get_service (
-			CAMEL_SESSION (info->session),
+			CAMEL_SESSION (session),
 			info->service_uid);
 
 		g_return_if_fail (CAMEL_IS_TRANSPORT (service));
 
 		info->again = 0;
 		mail_send_queue (
-			info->session,
+			info->backend,
 			local_outbox,
 			CAMEL_TRANSPORT (service),
 			E_FILTER_SOURCE_OUTGOING,
@@ -875,19 +878,24 @@ receive_get_folder (CamelFilterDriver *d,
 {
 	struct _send_info *info = data;
 	CamelFolder *folder;
+	EMailSession *session;
 	struct _folder_info *oldinfo;
 	gpointer oldkey, oldinfoptr;
 
 	g_mutex_lock (info->data->lock);
 	oldinfo = g_hash_table_lookup (info->data->folders, uri);
 	g_mutex_unlock (info->data->lock);
+
 	if (oldinfo) {
 		g_object_ref (oldinfo->folder);
 		return oldinfo->folder;
 	}
+
+	session = e_mail_backend_get_session (info->backend);
+
 	/* FIXME Not passing a GCancellable here. */
 	folder = e_mail_session_uri_to_folder_sync (
-		info->session, uri, 0, NULL, error);
+		session, uri, 0, NULL, error);
 	if (!folder)
 		return NULL;
 
@@ -965,6 +973,7 @@ refresh_folders_exec (struct _refresh_folders_msg *m,
                       GError **error)
 {
 	CamelFolder *folder;
+	EMailSession *session;
 	gint i;
 	GError *local_error = NULL;
 	gulong handler_id = 0;
@@ -978,9 +987,11 @@ refresh_folders_exec (struct _refresh_folders_msg *m,
 
 	camel_operation_push_message (m->info->cancellable, _("Updating..."));
 
+	session = e_mail_backend_get_session (m->info->backend);
+
 	for (i = 0; i < m->folders->len; i++) {
 		folder = e_mail_session_uri_to_folder_sync (
-			m->info->session,
+			session,
 			m->folders->pdata[i], 0,
 			cancellable, &local_error);
 		if (folder) {
@@ -1068,14 +1079,16 @@ static void
 receive_update_got_store (CamelStore *store,
                           struct _send_info *info)
 {
+	EMailSession *session;
 	MailFolderCache *folder_cache;
 
-	folder_cache = e_mail_session_get_folder_cache (info->session);
+	session = e_mail_backend_get_session (info->backend);
+	folder_cache = e_mail_session_get_folder_cache (session);
 
 	if (store) {
 		mail_folder_cache_note_store (
 			folder_cache,
-			CAMEL_SESSION (info->session),
+			CAMEL_SESSION (session),
 			store, info->cancellable,
 			receive_update_got_folderinfo, info);
 	} else {
@@ -1085,11 +1098,12 @@ receive_update_got_store (CamelStore *store,
 
 static GtkWidget *
 send_receive (GtkWindow *parent,
-              EMailSession *session,
+              EMailBackend *backend,
               gboolean allow_send)
 {
 	CamelFolder *local_outbox;
 	struct _send_data *data;
+	EMailSession *session;
 	EAccountList *accounts;
 	EAccount *account;
 	GList *scan;
@@ -1101,6 +1115,8 @@ send_receive (GtkWindow *parent,
 		return send_recv_dialog;
 	}
 
+	session = e_mail_backend_get_session (backend);
+
 	if (!camel_session_get_online (CAMEL_SESSION (session)))
 		return send_recv_dialog;
 
@@ -1112,7 +1128,7 @@ send_receive (GtkWindow *parent,
 
 	local_outbox = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_OUTBOX);
 	data = build_dialog (
-		parent, session, accounts,
+		parent, backend, accounts,
 		local_outbox, account, allow_send);
 
 	for (scan = data->infos; scan != NULL; scan = scan->next) {
@@ -1139,7 +1155,7 @@ send_receive (GtkWindow *parent,
 		case SEND_SEND:
 			/* todo, store the folder in info? */
 			mail_send_queue (
-				session, local_outbox,
+				backend, local_outbox,
 				CAMEL_TRANSPORT (service),
 				E_FILTER_SOURCE_OUTGOING,
 				info->cancellable,
@@ -1161,21 +1177,21 @@ send_receive (GtkWindow *parent,
 
 GtkWidget *
 mail_send_receive (GtkWindow *parent,
-                   EMailSession *session)
+                   EMailBackend *backend)
 {
-	return send_receive (parent, session, TRUE);
+	return send_receive (parent, backend, TRUE);
 }
 
 GtkWidget *
 mail_receive (GtkWindow *parent,
-              EMailSession *session)
+              EMailBackend *backend)
 {
-	return send_receive (parent, session, FALSE);
+	return send_receive (parent, backend, FALSE);
 }
 
 struct _auto_data {
 	EAccount *account;
-	EMailSession *session;
+	EMailBackend *backend;
 	gint period;		/* in seconds */
 	gint timeout_id;
 };
@@ -1185,10 +1201,13 @@ static GHashTable *auto_active;
 static gboolean
 auto_timeout (gpointer data)
 {
+	EMailSession *session;
 	struct _auto_data *info = data;
 
-	if (camel_session_get_online (CAMEL_SESSION (info->session)))
-		mail_receive_account (info->session, info->account);
+	session = e_mail_backend_get_session (info->backend);
+
+	if (camel_session_get_online (CAMEL_SESSION (session)))
+		mail_receive_account (info->backend, info->account);
 
 	return TRUE;
 }
@@ -1211,8 +1230,8 @@ auto_account_removed (EAccountList *eal,
 static void
 auto_account_finalized (struct _auto_data *info)
 {
-	if (info->session != NULL)
-		g_object_unref (info->session);
+	if (info->backend != NULL)
+		g_object_unref (info->backend);
 	if (info->timeout_id)
 		g_source_remove (info->timeout_id);
 	g_free (info);
@@ -1243,13 +1262,13 @@ auto_account_commit (struct _auto_data *info)
 static void
 auto_account_added (EAccountList *eal,
                     EAccount *ea,
-                    EMailSession *session)
+                    EMailBackend *backend)
 {
 	struct _auto_data *info;
 
 	info = g_malloc0 (sizeof (*info));
 	info->account = ea;
-	info->session = g_object_ref (session);
+	info->backend = g_object_ref (backend);
 	g_object_set_data_full (
 		G_OBJECT (ea), "mail-autoreceive", info,
 		(GDestroyNotify) auto_account_finalized);
@@ -1314,7 +1333,6 @@ mail_autoreceive_init (EMailBackend *backend)
 {
 	EShellBackend *shell_backend;
 	EShellSettings *shell_settings;
-	EMailSession *session;
 	EAccountList *accounts;
 	EIterator *iter;
 	EShell *shell;
@@ -1327,11 +1345,9 @@ mail_autoreceive_init (EMailBackend *backend)
 	accounts = e_get_account_list ();
 	auto_active = g_hash_table_new (g_str_hash, g_str_equal);
 
-	session = e_mail_backend_get_session (backend);
-
 	g_signal_connect (
 		accounts, "account-added",
-		G_CALLBACK (auto_account_added), session);
+		G_CALLBACK (auto_account_added), backend);
 	g_signal_connect (
 		accounts, "account-removed",
 		G_CALLBACK (auto_account_removed), NULL);
@@ -1344,7 +1360,7 @@ mail_autoreceive_init (EMailBackend *backend)
 	     e_iterator_next (iter))
 		auto_account_added (
 			accounts, (EAccount *)
-			e_iterator_get (iter), session);
+			e_iterator_get (iter), backend);
 
 	shell_backend = E_SHELL_BACKEND (backend);
 	shell = e_shell_backend_get_shell (shell_backend);
@@ -1356,7 +1372,7 @@ mail_autoreceive_init (EMailBackend *backend)
 
 		/* also flush outbox on start */
 		if (e_shell_get_online (shell))
-			mail_send (session);
+			mail_send (backend);
 	}
 
 	g_signal_connect (
@@ -1367,11 +1383,12 @@ mail_autoreceive_init (EMailBackend *backend)
 /* We setup the download info's in a hashtable, if we later
  * need to build the gui, we insert them in to add them. */
 void
-mail_receive_account (EMailSession *session,
+mail_receive_account (EMailBackend *backend,
                       EAccount *account)
 {
 	struct _send_info *info;
 	struct _send_data *data;
+	EMailSession *session;
 	CamelFolder *local_outbox;
 	CamelService *service;
 	CamelURL *url;
@@ -1394,7 +1411,7 @@ mail_receive_account (EMailSession *session,
 
 	info = g_malloc0 (sizeof (*info));
 	info->type = type;
-	info->session = g_object_ref (session);
+	info->backend = g_object_ref (backend);
 	info->progress_bar = NULL;
 	info->status_label = NULL;
 	info->service_uid = g_strdup (account->uid);
@@ -1413,6 +1430,8 @@ mail_receive_account (EMailSession *session,
 
 	g_hash_table_insert (data->active, account->uid, info);
 
+	session = e_mail_backend_get_session (backend);
+
 	service = camel_session_get_service (
 		CAMEL_SESSION (session), account->uid);
 
@@ -1434,7 +1453,7 @@ mail_receive_account (EMailSession *session,
 		local_outbox = e_mail_local_get_folder (
 			E_MAIL_LOCAL_FOLDER_OUTBOX);
 		mail_send_queue (
-			info->session,
+			info->backend,
 			local_outbox,
 			CAMEL_TRANSPORT (service),
 			E_FILTER_SOURCE_OUTGOING,
@@ -1452,10 +1471,11 @@ mail_receive_account (EMailSession *session,
 }
 
 void
-mail_send (EMailSession *session)
+mail_send (EMailBackend *backend)
 {
 	CamelFolder *local_outbox;
 	CamelService *service;
+	EMailSession *session;
 	EAccount *account;
 	CamelURL *url;
 	struct _send_info *info;
@@ -1490,7 +1510,7 @@ mail_send (EMailSession *session)
 
 	info = g_malloc0 (sizeof (*info));
 	info->type = SEND_SEND;
-	info->session = g_object_ref (session);
+	info->backend = g_object_ref (backend);
 	info->progress_bar = NULL;
 	info->status_label = NULL;
 	info->service_uid = g_strdup (transport_uid);
@@ -1508,6 +1528,8 @@ mail_send (EMailSession *session)
 	/* todo, store the folder in info? */
 	local_outbox = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_OUTBOX);
 
+	session = e_mail_backend_get_session (backend);
+
 	service = camel_session_get_service (
 		CAMEL_SESSION (session), transport_uid);
 
@@ -1516,7 +1538,7 @@ mail_send (EMailSession *session)
 	g_return_if_fail (CAMEL_IS_TRANSPORT (service));
 
 	mail_send_queue (
-		session, local_outbox,
+		backend, local_outbox,
 		CAMEL_TRANSPORT (service),
 		E_FILTER_SOURCE_OUTGOING,
 		info->cancellable,
diff --git a/mail/mail-send-recv.h b/mail/mail-send-recv.h
index 5da6599..f702b74 100644
--- a/mail/mail-send-recv.h
+++ b/mail/mail-send-recv.h
@@ -32,16 +32,16 @@ G_BEGIN_DECLS
 
 /* send/receive all uri's */
 GtkWidget *	mail_send_receive		(GtkWindow *parent,
-						 EMailSession *session);
+						 EMailBackend *backend);
 
 GtkWidget *	mail_receive			(GtkWindow *parent,
-						 EMailSession *session);
+						 EMailBackend *backend);
 
 /* receive a single account */
-void		mail_receive_account		(EMailSession *session,
+void		mail_receive_account		(EMailBackend *backend,
 						 EAccount *account);
 
-void		mail_send			(EMailSession *session);
+void		mail_send			(EMailBackend *backend);
 
 /* setup auto receive stuff */
 void		mail_autoreceive_init		(EMailBackend *backend);
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 78d0863..c1e451d 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -1161,7 +1161,7 @@ vfolder_load_storage (EMailBackend *backend)
 		G_CALLBACK (context_rule_removed), context);
 
 	/* load store to mail component */
-	e_mail_store_add (session, vfolder_store);
+	e_mail_store_add (backend, vfolder_store);
 
 	/* and setup the rules we have */
 	rule = NULL;
diff --git a/mail/message-list.c b/mail/message-list.c
index d98f860..602bdfa 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -3332,7 +3332,7 @@ build_tree (MessageList *ml,
 #endif
 	if (!saveuid && ml->cursor_uid && g_hash_table_lookup (ml->uid_nodemap, ml->cursor_uid)) {
 		/* this makes sure a visible node is selected, like when
-		   collapsing all nodes and a children had been selected
+		 * collapsing all nodes and a children had been selected
 		*/
 		saveuid = g_strdup (ml->cursor_uid);
 	}
diff --git a/modules/mail/e-mail-shell-backend.c b/modules/mail/e-mail-shell-backend.c
index 5eb5ce9..4cf3cb7 100644
--- a/modules/mail/e-mail-shell-backend.c
+++ b/modules/mail/e-mail-shell-backend.c
@@ -234,8 +234,6 @@ mail_shell_backend_mail_sync (EMailShellBackend *mail_shell_backend)
 {
 	EShell *shell;
 	EShellBackend *shell_backend;
-	EMailBackend *backend;
-	EMailSession *session;
 
 	shell_backend = E_SHELL_BACKEND (mail_shell_backend);
 	shell = e_shell_backend_get_shell (shell_backend);
@@ -248,11 +246,9 @@ mail_shell_backend_mail_sync (EMailShellBackend *mail_shell_backend)
 	if (mail_shell_backend->priv->mail_sync_in_progress)
 		goto exit;
 
-	backend = E_MAIL_BACKEND (mail_shell_backend);
-	session = e_mail_backend_get_session (backend);
-
 	e_mail_store_foreach (
-		session, (GFunc) mail_shell_backend_sync_store_cb,
+		E_MAIL_BACKEND (mail_shell_backend),
+		(GFunc) mail_shell_backend_sync_store_cb,
 		mail_shell_backend);
 
 exit:
@@ -445,7 +441,6 @@ mail_shell_backend_start (EShellBackend *shell_backend)
 	EShell *shell;
 	EShellSettings *shell_settings;
 	EMailBackend *backend;
-	EMailSession *session;
 	gboolean enable_search_folders;
 	const gchar *data_dir;
 
@@ -455,10 +450,9 @@ mail_shell_backend_start (EShellBackend *shell_backend)
 	shell_settings = e_shell_get_shell_settings (shell);
 
 	backend = E_MAIL_BACKEND (shell_backend);
-	session = e_mail_backend_get_session (backend);
 	data_dir = e_shell_backend_get_data_dir (shell_backend);
 
-	e_mail_store_init (session, data_dir);
+	e_mail_store_init (backend, data_dir);
 
 	enable_search_folders = e_shell_settings_get_boolean (
 		shell_settings, "mail-enable-search-folders");
diff --git a/modules/mail/e-mail-shell-view-actions.c b/modules/mail/e-mail-shell-view-actions.c
index f4f5ea2..6d9b3a4 100644
--- a/modules/mail/e-mail-shell-view-actions.c
+++ b/modules/mail/e-mail-shell-view-actions.c
@@ -85,7 +85,6 @@ action_mail_account_disable_cb (GtkAction *action,
 	EShellBackend *shell_backend;
 	EShellView *shell_view;
 	EMailBackend *backend;
-	EMailSession *session;
 	EMFolderTree *folder_tree;
 	CamelService *service;
 	CamelStore *store;
@@ -99,7 +98,6 @@ action_mail_account_disable_cb (GtkAction *action,
 	shell_backend = e_shell_view_get_shell_backend (shell_view);
 
 	backend = E_MAIL_BACKEND (shell_backend);
-	session = e_mail_backend_get_session (backend);
 
 	folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
 	store = em_folder_tree_get_selected_store (folder_tree);
@@ -117,7 +115,7 @@ action_mail_account_disable_cb (GtkAction *action,
 
 	account->enabled = !account->enabled;
 	e_account_list_change (account_list, account);
-	e_mail_store_remove_by_account (session, account);
+	e_mail_store_remove_by_account (backend, account);
 
 	if (account->parent_uid != NULL)
 		e_account_list_remove (account_list, account);
@@ -227,17 +225,15 @@ action_mail_download_cb (GtkAction *action,
 	EMailView *mail_view;
 	EMailReader *reader;
 	EMailBackend *backend;
-	EMailSession *session;
 
 	mail_shell_content = mail_shell_view->priv->mail_shell_content;
 	mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
 
 	reader = E_MAIL_READER (mail_view);
 	backend = e_mail_reader_get_backend (reader);
-	session = e_mail_backend_get_session (backend);
 
 	e_mail_store_foreach (
-		session, (GFunc) action_mail_download_foreach_cb, reader);
+		backend, (GFunc) action_mail_download_foreach_cb, reader);
 }
 
 static void
@@ -247,15 +243,12 @@ action_mail_flush_outbox_cb (GtkAction *action,
 	EShellBackend *shell_backend;
 	EShellView *shell_view;
 	EMailBackend *backend;
-	EMailSession *session;
 
 	shell_view = E_SHELL_VIEW (mail_shell_view);
 	shell_backend = e_shell_view_get_shell_backend (shell_view);
-
 	backend = E_MAIL_BACKEND (shell_backend);
-	session = e_mail_backend_get_session (backend);
 
-	mail_send (session);
+	mail_send (backend);
 }
 
 static void
@@ -1059,7 +1052,6 @@ action_mail_tools_subscriptions_cb (GtkAction *action,
 	EShellWindow *shell_window;
 	EShellView *shell_view;
 	EMailBackend *backend;
-	EMailSession *session;
 	EMFolderTree *folder_tree;
 	GtkWidget *dialog;
 	CamelStore *store;
@@ -1073,11 +1065,9 @@ action_mail_tools_subscriptions_cb (GtkAction *action,
 	store = em_folder_tree_get_selected_store (folder_tree);
 
 	backend = E_MAIL_BACKEND (shell_backend);
-	session = e_mail_backend_get_session (backend);
 
 	dialog = em_subscription_editor_new (
-		GTK_WINDOW (shell_window),
-		CAMEL_SESSION (session), store);
+		GTK_WINDOW (shell_window), backend, store);
 	gtk_dialog_run (GTK_DIALOG (dialog));
 	gtk_widget_destroy (dialog);
 }
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index a730990..30a6756 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -1089,7 +1089,6 @@ e_mail_shell_view_send_receive (EMailShellView *mail_shell_view,
                                 EMailSendReceiveMode mode,
                                 const gchar *account_uid)
 {
-	EMailSession *session;
 	EShellView *shell_view;
 	EShellWindow *shell_window;
 	EShellBackend *shell_backend;
@@ -1100,20 +1099,22 @@ e_mail_shell_view_send_receive (EMailShellView *mail_shell_view,
 	shell_window = e_shell_view_get_shell_window (shell_view);
 	shell_backend = e_shell_view_get_shell_backend (shell_view);
 
-	session = e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend));
-
 	em_utils_clear_get_password_canceled_accounts_flag ();
 
 	if (!account_uid) {
 		switch (mode) {
 		case E_MAIL_SEND_RECEIVE_BOTH:
-			mail_send_receive (GTK_WINDOW (shell_window), session);
+			mail_send_receive (
+				GTK_WINDOW (shell_window),
+				E_MAIL_BACKEND (shell_backend));
 			break;
 		case E_MAIL_SEND_RECEIVE_RECEIVE:
-			mail_receive (GTK_WINDOW (shell_window), session);
+			mail_receive (
+				GTK_WINDOW (shell_window),
+				E_MAIL_BACKEND (shell_backend));
 			break;
 		case E_MAIL_SEND_RECEIVE_SEND:
-			mail_send (session);
+			mail_send (E_MAIL_BACKEND (shell_backend));
 			break;
 		}
 	} else {
@@ -1124,7 +1125,8 @@ e_mail_shell_view_send_receive (EMailShellView *mail_shell_view,
 		g_return_if_fail (account != NULL);
 
 		if (account->enabled && account->source != NULL)
-			mail_receive_account (session, account);
+			mail_receive_account (
+				E_MAIL_BACKEND (shell_backend), account);
 	}
 }
 
diff --git a/modules/mail/em-account-prefs.c b/modules/mail/em-account-prefs.c
index 1b11b41..0dc93be 100644
--- a/modules/mail/em-account-prefs.c
+++ b/modules/mail/em-account-prefs.c
@@ -62,7 +62,9 @@ G_DEFINE_TYPE (
 	E_TYPE_ACCOUNT_MANAGER)
 
 static gboolean
-account_prefs_toggle_enable_special (EMAccountPrefs *prefs, EAccountTreeViewSelectedType type, gboolean enabled)
+account_prefs_toggle_enable_special (EMAccountPrefs *prefs,
+                                     EAccountTreeViewSelectedType type,
+                                     gboolean enabled)
 {
 	const gchar *prop = NULL;
 	EShell *shell;
@@ -96,7 +98,6 @@ account_prefs_enable_account_cb (EAccountTreeView *tree_view,
                                  EMAccountPrefs *prefs)
 {
 	EAccount *account;
-	EMailSession *session;
 
 	account = e_account_tree_view_get_selected (tree_view);
 	if (!account) {
@@ -106,8 +107,7 @@ account_prefs_enable_account_cb (EAccountTreeView *tree_view,
 
 	g_return_if_fail (account != NULL);
 
-	session = e_mail_backend_get_session (prefs->priv->backend);
-	e_mail_store_add_by_account (session, account);
+	e_mail_store_add_by_account (prefs->priv->backend, account);
 }
 
 static void
@@ -115,7 +115,6 @@ account_prefs_disable_account_cb (EAccountTreeView *tree_view,
                                   EMAccountPrefs *prefs)
 {
 	EAccountList *account_list;
-	EMailSession *session;
 	EAccount *account;
 	gpointer parent;
 	gint response;
@@ -131,10 +130,8 @@ account_prefs_disable_account_cb (EAccountTreeView *tree_view,
 	account_list = e_account_tree_view_get_account_list (tree_view);
 	g_return_if_fail (account_list != NULL);
 
-	session = e_mail_backend_get_session (prefs->priv->backend);
-
 	if (!e_account_list_account_has_proxies (account_list, account)) {
-		e_mail_store_remove_by_account (session, account);
+		e_mail_store_remove_by_account (prefs->priv->backend, account);
 		return;
 	}
 
@@ -151,7 +148,7 @@ account_prefs_disable_account_cb (EAccountTreeView *tree_view,
 
 	e_account_list_remove_account_proxies (account_list, account);
 
-	e_mail_store_remove_by_account (session, account);
+	e_mail_store_remove_by_account (prefs->priv->backend, account);
 }
 
 static void
@@ -323,14 +320,12 @@ account_prefs_delete_account (EAccountManager *manager)
 	EMAccountPrefsPrivate *priv;
 	EAccountTreeView *tree_view;
 	EAccountList *account_list;
-	EMailSession *session;
 	EAccount *account;
 	gboolean has_proxies;
 	gpointer parent;
 	gint response;
 
 	priv = EM_ACCOUNT_PREFS (manager)->priv;
-	session = e_mail_backend_get_session (priv->backend);
 
 	account_list = e_account_manager_get_account_list (manager);
 	tree_view = e_account_manager_get_tree_view (manager);
@@ -359,7 +354,7 @@ account_prefs_delete_account (EAccountManager *manager)
 
 	/* Remove the account from the folder tree. */
 	if (account->enabled)
-		e_mail_store_remove_by_account (session, account);
+		e_mail_store_remove_by_account (priv->backend, account);
 
 	/* Remove all the proxies the account has created. */
 	if (has_proxies)
@@ -423,7 +418,8 @@ em_account_prefs_init (EMAccountPrefs *prefs)
 }
 
 static void
-account_tree_view_sort_order_changed_cb (EAccountTreeView *tree_view, EMailBackend *backend)
+account_tree_view_sort_order_changed_cb (EAccountTreeView *tree_view,
+                                         EMailBackend *backend)
 {
 	GSList *account_uids;
 
diff --git a/modules/mail/em-composer-prefs.c b/modules/mail/em-composer-prefs.c
index fb49352..12a521b 100644
--- a/modules/mail/em-composer-prefs.c
+++ b/modules/mail/em-composer-prefs.c
@@ -43,16 +43,16 @@
 #include <gtkhtml/gtkhtml.h>
 #include <editor/gtkhtml-spell-language.h>
 
-#include "e-util/e-util.h"
-#include "e-util/e-util-private.h"
-#include "mail/e-mail-junk-options.h"
-#include "widgets/misc/e-charset-combo-box.h"
-#include "widgets/misc/e-signature-editor.h"
-#include "widgets/misc/e-signature-manager.h"
-#include "widgets/misc/e-signature-preview.h"
+#include <e-util/e-util.h>
+#include <e-util/e-util-private.h>
+#include <misc/e-charset-combo-box.h>
+#include <misc/e-signature-editor.h>
+#include <misc/e-signature-manager.h>
+#include <misc/e-signature-preview.h>
 
 #include "em-config.h"
 #include "em-folder-selection-button.h"
+#include "e-mail-junk-options.h"
 
 G_DEFINE_TYPE (
 	EMComposerPrefs,
@@ -132,14 +132,17 @@ transform_new_to_old_reply_style (GBinding *binding,
 }
 
 static void
-composer_prefs_finalize (GObject *object)
+composer_prefs_dispose (GObject *object)
 {
 	EMComposerPrefs *prefs = (EMComposerPrefs *) object;
 
-	g_object_unref (prefs->builder);
+	if (prefs->builder != NULL) {
+		g_object_unref (prefs->builder);
+		prefs->builder = NULL;
+	}
 
-	/* Chain up to parent's finalize() method. */
-	G_OBJECT_CLASS (em_composer_prefs_parent_class)->finalize (object);
+	/* Chain up to parent's dispose() method. */
+	G_OBJECT_CLASS (em_composer_prefs_parent_class)->dispose (object);
 }
 
 static void
@@ -148,7 +151,7 @@ em_composer_prefs_class_init (EMComposerPrefsClass *class)
 	GObjectClass *object_class;
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->finalize = composer_prefs_finalize;
+	object_class->dispose = composer_prefs_dispose;
 }
 
 static void
@@ -538,7 +541,8 @@ em_composer_prefs_construct (EMComposerPrefs *prefs,
 
 	/* Signatures */
 	signature_list = e_get_signature_list ();
-	container = e_builder_get_widget (prefs->builder, "signature-alignment");
+	container = e_builder_get_widget (
+		prefs->builder, "signature-alignment");
 	widget = e_signature_manager_new (signature_list);
 	gtk_container_add (GTK_CONTAINER (container), widget);
 	gtk_widget_show (widget);
@@ -589,9 +593,10 @@ em_composer_prefs_construct (EMComposerPrefs *prefs,
 GtkWidget *
 em_composer_prefs_new (EPreferencesWindow *window)
 {
+	EShell *shell;
 	EMComposerPrefs *prefs;
-	EShell *shell = e_preferences_window_get_shell (window);
 
+	shell = e_preferences_window_get_shell (window);
 	g_return_val_if_fail (E_IS_SHELL (shell), NULL);
 
 	prefs = g_object_new (EM_TYPE_COMPOSER_PREFS, NULL);
diff --git a/modules/mail/em-composer-prefs.h b/modules/mail/em-composer-prefs.h
index f39af57..79a53bb 100644
--- a/modules/mail/em-composer-prefs.h
+++ b/modules/mail/em-composer-prefs.h
@@ -76,8 +76,8 @@ struct _EMComposerPrefsClass {
 	GtkVBoxClass parent_class;
 };
 
-GType      em_composer_prefs_get_type      (void);
-GtkWidget *em_composer_prefs_new           (EPreferencesWindow *window);
+GType		em_composer_prefs_get_type	(void);
+GtkWidget *	em_composer_prefs_new		(EPreferencesWindow *window);
 
 G_END_DECLS
 
diff --git a/plugins/default-source/default-source.c b/plugins/default-source/default-source.c
index 62ebd4b..c80aba3 100644
--- a/plugins/default-source/default-source.c
+++ b/plugins/default-source/default-source.c
@@ -55,7 +55,8 @@ e_plugin_lib_enable (EPlugin *ep,
 }
 
 static void
-mark_default_source_in_list (ESourceList *source_list, ESource *source)
+mark_default_source_in_list (ESourceList *source_list,
+                             ESource *source)
 {
 	GSList *g, *s;
 	g_return_if_fail (source_list != NULL);
@@ -106,7 +107,7 @@ commit_default_calendar (EPlugin *epl,
 
 		if (source_list) {
 			/* mark in the backend's source_list, to avoid race
-			   with saving of two different source lists
+			 * with saving of two different source lists
 			*/
 			mark_default_source_in_list (source_list, source);
 		} else {
@@ -139,7 +140,7 @@ commit_default_book (EPlugin *epl,
 
 		if (source_list) {
 			/* mark in the backend's source_list, to avoid race
-			   with saving of two different source lists
+			 * with saving of two different source lists
 			*/
 			mark_default_source_in_list (source_list, source);
 		} else {
diff --git a/plugins/mail-notification/mail-notification.c b/plugins/mail-notification/mail-notification.c
index 9639bc6..d85987d 100644
--- a/plugins/mail-notification/mail-notification.c
+++ b/plugins/mail-notification/mail-notification.c
@@ -37,7 +37,6 @@
 #include <time.h>
 
 #include <e-util/e-config.h>
-#include <e-util/e-account-utils.h>
 #include <e-util/gconf-bridge.h>
 #include <mail/e-mail-folder-utils.h>
 #include <mail/em-utils.h>
diff --git a/plugins/mail-to-task/mail-to-task.c b/plugins/mail-to-task/mail-to-task.c
index 1d9f1fa..810a2b5 100644
--- a/plugins/mail-to-task/mail-to-task.c
+++ b/plugins/mail-to-task/mail-to-task.c
@@ -1131,10 +1131,12 @@ mail_to_event (ECalClientSourceType source_type,
 		/* ask the user which tasks list to save to */
 		dialog = e_source_selector_dialog_new (NULL, source_list);
 
-		e_source_selector_dialog_select_default_source (E_SOURCE_SELECTOR_DIALOG (dialog));
+		e_source_selector_dialog_select_default_source (
+			E_SOURCE_SELECTOR_DIALOG (dialog));
 
 		if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
-			source = e_source_selector_dialog_peek_primary_selection (E_SOURCE_SELECTOR_DIALOG (dialog));
+			source = e_source_selector_dialog_peek_primary_selection (
+				E_SOURCE_SELECTOR_DIALOG (dialog));
 		else
 			source = NULL;
 
diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c
index b330a37..fc19d7a 100644
--- a/plugins/pst-import/pst-importer.c
+++ b/plugins/pst-import/pst-importer.c
@@ -412,7 +412,9 @@ add_source_list_with_check (GtkWidget *frame,
 
 		gtk_box_pack_end ((GtkBox *) hbox, combo, FALSE, FALSE, 0);
 
-		g_signal_connect (check, "toggled", G_CALLBACK (widget_sanitizer_cb), combo);
+		g_signal_connect (
+			check, "toggled",
+			G_CALLBACK (widget_sanitizer_cb), combo);
 		widget_sanitizer_cb (GTK_TOGGLE_BUTTON (check), combo);
 	}
 
@@ -472,10 +474,22 @@ org_credativ_evolution_readpst_getwidget (EImport *ei,
 
 	gtk_box_pack_start ((GtkBox *) framebox, hbox, FALSE, FALSE, 0);
 
-	add_source_list_with_check (framebox, _("_Address Book"), E_CLIENT_SOURCE_TYPE_CONTACTS, G_CALLBACK (checkbox_addr_toggle_cb), target);
-	add_source_list_with_check (framebox, _("A_ppointments"), E_CLIENT_SOURCE_TYPE_EVENTS, G_CALLBACK (checkbox_appt_toggle_cb), target);
-	add_source_list_with_check (framebox, _("_Tasks"), E_CLIENT_SOURCE_TYPE_TASKS, G_CALLBACK (checkbox_task_toggle_cb), target);
-	add_source_list_with_check (framebox, _("_Journal entries"), E_CLIENT_SOURCE_TYPE_MEMOS, G_CALLBACK (checkbox_journal_toggle_cb), target);
+	add_source_list_with_check (
+		framebox, _("_Address Book"),
+		E_CLIENT_SOURCE_TYPE_CONTACTS,
+		G_CALLBACK (checkbox_addr_toggle_cb), target);
+	add_source_list_with_check (
+		framebox, _("A_ppointments"),
+		E_CLIENT_SOURCE_TYPE_EVENTS,
+		G_CALLBACK (checkbox_appt_toggle_cb), target);
+	add_source_list_with_check (
+		framebox, _("_Tasks"),
+		E_CLIENT_SOURCE_TYPE_TASKS,
+		G_CALLBACK (checkbox_task_toggle_cb), target);
+	add_source_list_with_check (
+		framebox, _("_Journal entries"),
+		E_CLIENT_SOURCE_TYPE_MEMOS,
+		G_CALLBACK (checkbox_journal_toggle_cb), target);
 
 	gtk_widget_show_all (framebox);
 
@@ -550,7 +564,8 @@ open_client (PstImporter *m,
 
 	m->waiting_open++;
 
-	e_client_utils_open_new (source, source_type, FALSE, m->cancellable,
+	e_client_utils_open_new (
+		source, source_type, FALSE, m->cancellable,
 		e_client_utils_authenticate_handler, NULL,
 		client_opened_cb, m);
 }
diff --git a/plugins/vcard-inline/vcard-inline.c b/plugins/vcard-inline/vcard-inline.c
index 1b72958..cfe461b 100644
--- a/plugins/vcard-inline/vcard-inline.c
+++ b/plugins/vcard-inline/vcard-inline.c
@@ -119,14 +119,13 @@ org_gnome_vcard_inline_decode (VCardInlinePObject *vcard_object,
 }
 
 static void
-org_gnome_vcard_inline_client_loaded_cb (GObject *source_object,
+org_gnome_vcard_inline_client_loaded_cb (ESource *source,
                                          GAsyncResult *result,
-                                         gpointer user_data)
+                                         GSList *contact_list)
 {
-	ESource *source = E_SOURCE (source_object);
 	EClient *client = NULL;
 	EBookClient *book_client;
-	GSList *contact_list = user_data, *iter;
+	GSList *iter;
 	GError *error = NULL;
 
 	e_client_utils_open_new_finish (source, result, &client, &error);
@@ -185,9 +184,11 @@ org_gnome_vcard_inline_save_cb (VCardInlinePObject *vcard_object)
 
 	contact_list = e_client_util_copy_object_slist (NULL, vcard_object->contact_list);
 
-	e_client_utils_open_new (source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL,
-		e_client_utils_authenticate_handler, NULL,
-		org_gnome_vcard_inline_client_loaded_cb, contact_list);
+	e_client_utils_open_new (
+		source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE,
+		NULL, e_client_utils_authenticate_handler, NULL,
+		(GAsyncReadyCallback) org_gnome_vcard_inline_client_loaded_cb,
+		contact_list);
 }
 
 static void
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 2954765..dce7b21 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -46,6 +46,10 @@
 #include "e-shell-window.h"
 #include "e-shell-utils.h"
 
+#define E_SHELL_GET_PRIVATE(obj) \
+	(G_TYPE_INSTANCE_GET_PRIVATE \
+	((obj), E_TYPE_SHELL, EShellPrivate))
+
 struct _EShellPrivate {
 	GQueue alerts;
 	GList *watched_windows;
@@ -739,7 +743,7 @@ shell_dispose (GObject *object)
 	EShellPrivate *priv;
 	EAlert *alert;
 
-	priv = E_SHELL (object)->priv;
+	priv = E_SHELL_GET_PRIVATE (object);
 
 	while ((alert = g_queue_pop_head (&priv->alerts)) != NULL) {
 		g_signal_handlers_disconnect_by_func (
@@ -787,7 +791,7 @@ shell_finalize (GObject *object)
 {
 	EShellPrivate *priv;
 
-	priv = E_SHELL (object)->priv;
+	priv = E_SHELL_GET_PRIVATE (object);
 
 	g_hash_table_destroy (priv->backends_by_name);
 	g_hash_table_destroy (priv->backends_by_scheme);
@@ -1226,8 +1230,7 @@ e_shell_init (EShell *shell)
 	GtkIconTheme *icon_theme;
 	EggSMClient *sm_client;
 
-	shell->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-		shell, E_TYPE_SHELL, EShellPrivate);
+	shell->priv = E_SHELL_GET_PRIVATE (shell);
 
 	backends_by_name = g_hash_table_new (g_str_hash, g_str_equal);
 	backends_by_scheme = g_hash_table_new (g_str_hash, g_str_equal);
diff --git a/smime/gui/component.c b/smime/gui/component.c
index 091ebee..fcbb9fa 100644
--- a/smime/gui/component.c
+++ b/smime/gui/component.c
@@ -50,10 +50,10 @@ smime_pk11_passwd (ECertDB *db,
 	prompt = g_strdup_printf (_("Enter the password for '%s'"), slot_name);
 	g_free (slot_name);
 
-	*passwd = e_passwords_ask_password (_("Enter password"), NULL, "",
-					    prompt,
-					    E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET, NULL,
-					    NULL);
+	*passwd = e_passwords_ask_password (
+		_("Enter password"), NULL, "", prompt,
+		E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET,
+		NULL, NULL);
 
 	g_free (prompt);
 
@@ -75,10 +75,10 @@ smime_pk11_change_passwd (ECertDB *db,
 		/* we're setting the password initially */
 		prompt = _("Enter new password for certificate database");
 
-		*passwd = e_passwords_ask_password (_("Enter new password"), NULL, "",
-						    prompt,
-						    E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET, NULL,
-						    NULL);
+		*passwd = e_passwords_ask_password (
+			_("Enter new password"), NULL, "", prompt,
+			E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET,
+			NULL, NULL);
 	}
 	else {
 		/* we're changing the password */
diff --git a/smime/lib/e-pkcs12.c b/smime/lib/e-pkcs12.c
index 959924e..9b95668 100644
--- a/smime/lib/e-pkcs12.c
+++ b/smime/lib/e-pkcs12.c
@@ -205,9 +205,10 @@ prompt_for_password (gchar *title,
 {
 	gchar *passwd;
 
-	passwd = e_passwords_ask_password (title, NULL, "", prompt,
-					   E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET, NULL,
-					   NULL);
+	passwd = e_passwords_ask_password (
+		title, NULL, "", prompt,
+		E_PASSWORDS_REMEMBER_NEVER | E_PASSWORDS_SECRET,
+		NULL, NULL);
 
 	if (passwd) {
 		gsize len = strlen (passwd);
diff --git a/widgets/misc/e-account-tree-view.c b/widgets/misc/e-account-tree-view.c
index a213643..7eae4e1 100644
--- a/widgets/misc/e-account-tree-view.c
+++ b/widgets/misc/e-account-tree-view.c
@@ -941,7 +941,8 @@ e_account_tree_view_get_selected_type (EAccountTreeView *tree_view)
  * Since: 3.4
  **/
 void
-e_account_tree_view_set_selected_type (EAccountTreeView *tree_view, EAccountTreeViewSelectedType select)
+e_account_tree_view_set_selected_type (EAccountTreeView *tree_view,
+                                       EAccountTreeViewSelectedType select)
 {
 	GtkTreeSelection *selection;
 	GtkTreeModel *model;
@@ -994,7 +995,8 @@ e_account_tree_view_set_selected_type (EAccountTreeView *tree_view, EAccountTree
 }
 
 static guint
-account_tree_view_get_slist_index (const GSList *account_uids, const gchar *uid)
+account_tree_view_get_slist_index (const GSList *account_uids,
+                                   const gchar *uid)
 {
 	guint res = 0;
 
@@ -1021,7 +1023,8 @@ account_tree_view_get_slist_index (const GSList *account_uids, const gchar *uid)
  * Since: 3.4
  **/
 void
-e_account_tree_view_set_sort_order (EAccountTreeView *tree_view, const GSList *account_uids)
+e_account_tree_view_set_sort_order (EAccountTreeView *tree_view,
+                                    const GSList *account_uids)
 {
 	GtkTreeModel *model;
 	GtkTreeIter iter;
@@ -1064,7 +1067,9 @@ e_account_tree_view_set_sort_order (EAccountTreeView *tree_view, const GSList *a
 }
 
 static gint
-eval_order_by_sort_hash_cb (gconstpointer a, gconstpointer b, gpointer user_data)
+eval_order_by_sort_hash_cb (gconstpointer a,
+                            gconstpointer b,
+                            gpointer user_data)
 {
 	guint asortorder = GPOINTER_TO_UINT (g_hash_table_lookup (user_data, a));
 	guint bsortorder = GPOINTER_TO_UINT (g_hash_table_lookup (user_data, b));
@@ -1173,7 +1178,8 @@ e_account_tree_view_sort_changed (EAccountTreeView *tree_view)
 }
 
 static void
-account_tree_view_swap_sort_order (EAccountTreeView *tree_view, gint direction)
+account_tree_view_swap_sort_order (EAccountTreeView *tree_view,
+                                   gint direction)
 {
 	GtkTreeSelection *selection;
 	GtkTreeModel *model;
@@ -1239,7 +1245,8 @@ e_account_tree_view_move_down (EAccountTreeView *tree_view)
 }
 
 void
-e_account_tree_view_set_sort_alpha (EAccountTreeView *tree_view, gboolean sort_alpha)
+e_account_tree_view_set_sort_alpha (EAccountTreeView *tree_view,
+                                    gboolean sort_alpha)
 {
 	g_return_if_fail (tree_view != NULL);
 	g_return_if_fail (E_IS_ACCOUNT_TREE_VIEW (tree_view));
@@ -1265,7 +1272,8 @@ e_account_tree_view_get_sort_alpha (EAccountTreeView *tree_view)
 }
 
 void
-e_account_tree_view_set_express_mode (EAccountTreeView *tree_view, gboolean express_mode)
+e_account_tree_view_set_express_mode (EAccountTreeView *tree_view,
+                                      gboolean express_mode)
 {
 	g_return_if_fail (tree_view != NULL);
 	g_return_if_fail (E_IS_ACCOUNT_TREE_VIEW (tree_view));
@@ -1291,7 +1299,9 @@ e_account_tree_view_get_express_mode (EAccountTreeView *tree_view)
 }
 
 static void
-update_special_enable_state (EAccountTreeView *tree_view, const gchar *display_name, gboolean enabled)
+update_special_enable_state (EAccountTreeView *tree_view,
+                             const gchar *display_name,
+                             gboolean enabled)
 {
 	GtkTreeModel *model;
 	GtkTreeIter iter;
@@ -1332,7 +1342,8 @@ update_special_enable_state (EAccountTreeView *tree_view, const gchar *display_n
 }
 
 void
-e_account_tree_view_set_enable_local_folders (EAccountTreeView *tree_view, gboolean enabled)
+e_account_tree_view_set_enable_local_folders (EAccountTreeView *tree_view,
+                                              gboolean enabled)
 {
 	g_return_if_fail (tree_view != NULL);
 	g_return_if_fail (E_IS_ACCOUNT_TREE_VIEW (tree_view));
@@ -1359,7 +1370,8 @@ e_account_tree_view_get_enable_local_folders (EAccountTreeView *tree_view)
 }
 
 void
-e_account_tree_view_set_enable_search_folders (EAccountTreeView *tree_view, gboolean enabled)
+e_account_tree_view_set_enable_search_folders (EAccountTreeView *tree_view,
+                                               gboolean enabled)
 {
 	g_return_if_fail (tree_view != NULL);
 	g_return_if_fail (E_IS_ACCOUNT_TREE_VIEW (tree_view));
diff --git a/widgets/misc/e-attachment-store.c b/widgets/misc/e-attachment-store.c
index 8db9f2a..691fd51 100644
--- a/widgets/misc/e-attachment-store.c
+++ b/widgets/misc/e-attachment-store.c
@@ -1080,7 +1080,7 @@ struct _SaveContext {
 static SaveContext *
 attachment_store_save_context_new (EAttachmentStore *store,
                                    GFile *destination,
-				   const gchar *filename_prefix,
+                                   const gchar *filename_prefix,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data)
 {
@@ -1128,7 +1128,7 @@ attachment_store_save_context_free (SaveContext *save_context)
 
 	g_free (save_context->filename_prefix);
 	save_context->filename_prefix = NULL;
-	
+
 	if (save_context->fresh_directory) {
 		g_object_unref (save_context->fresh_directory);
 		save_context->fresh_directory = NULL;
@@ -1145,7 +1145,10 @@ attachment_store_save_context_free (SaveContext *save_context)
 }
 
 static void
-attachment_store_move_file (SaveContext *save_context, GFile *source, GFile *destination, GError **error)
+attachment_store_move_file (SaveContext *save_context,
+                            GFile *source,
+                            GFile *destination,
+                            GError **error)
 {
 	gchar *tmpl;
 	gchar *path;
@@ -1311,7 +1314,7 @@ attachment_store_save_cb (EAttachment *attachment,
 void
 e_attachment_store_save_async (EAttachmentStore *store,
                                GFile *destination,
-			       const gchar *filename_prefix,
+                               const gchar *filename_prefix,
                                GAsyncReadyCallback callback,
                                gpointer user_data)
 {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]