[evolution/kill-bonobo] Radically reorganize source code.



commit f0d3f3afdfa314e1e8cd7d8da790878008a46aad
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Jun 24 12:59:33 2009 -0400

    Radically reorganize source code.
    
    - Collect all shell modules into a new top-level 'modules' directory:
    
          $(top_srcdir)/modules/addressbook
          $(top_srcdir)/modules/calendar
          $(top_srcdir)/modules/mail
    
      Nothing is allowed to link to these, not plugins nor other modules.
    
      THIS SOLVES BUG #571275 AND OPENS THE DOOR TO PORTING TO MAC OS X.
    
    - Mimic the libevolution-mail-shared library from master (except drop
      the "shared" suffix) and have libevolution-mail-importers and all
      mail-related plugins link to it.
    
    - Discard the a11y subdirectories and have the files live alongside
      their counterpart widgets.

 INSTALL                                            |  237 --------------------
 Makefile.am                                        |   24 +--
 addressbook/gui/Makefile.am                        |    2 +-
 addressbook/gui/widgets/Makefile.am                |   16 +-
 addressbook/gui/widgets/e-addressbook-view.c       |    2 +-
 addressbook/gui/widgets/e-minicard-view.c          |    2 +-
 addressbook/gui/widgets/e-minicard.c               |    2 +-
 .../gui/widgets/{a11y => }/ea-addressbook-view.c   |    0
 .../gui/widgets/{a11y => }/ea-addressbook-view.h   |    0
 .../gui/widgets/{a11y => }/ea-addressbook.c        |    0
 .../gui/widgets/{a11y => }/ea-addressbook.h        |    0
 .../gui/widgets/{a11y => }/ea-minicard-view.c      |    0
 .../gui/widgets/{a11y => }/ea-minicard-view.h      |    0
 addressbook/gui/widgets/{a11y => }/ea-minicard.c   |    0
 addressbook/gui/widgets/{a11y => }/ea-minicard.h   |    0
 calendar/Makefile.am                               |    2 +-
 calendar/gui/Makefile.am                           |   51 ++---
 calendar/gui/{a11y => }/ea-cal-view-event.c        |    0
 calendar/gui/{a11y => }/ea-cal-view-event.h        |    0
 calendar/gui/{a11y => }/ea-cal-view.c              |    0
 calendar/gui/{a11y => }/ea-cal-view.h              |    0
 calendar/gui/{a11y => }/ea-calendar-helpers.c      |    0
 calendar/gui/{a11y => }/ea-calendar-helpers.h      |    0
 calendar/gui/{a11y => }/ea-calendar.c              |    0
 calendar/gui/{a11y => }/ea-calendar.h              |    0
 calendar/gui/{a11y => }/ea-day-view-cell.c         |    0
 calendar/gui/{a11y => }/ea-day-view-cell.h         |    0
 calendar/gui/{a11y => }/ea-day-view-main-item.c    |    0
 calendar/gui/{a11y => }/ea-day-view-main-item.h    |    0
 calendar/gui/{a11y => }/ea-day-view.c              |    0
 calendar/gui/{a11y => }/ea-day-view.h              |    0
 calendar/gui/{a11y => }/ea-gnome-calendar.c        |    0
 calendar/gui/{a11y => }/ea-gnome-calendar.h        |    0
 calendar/gui/{a11y => }/ea-jump-button.c           |    0
 calendar/gui/{a11y => }/ea-jump-button.h           |    0
 calendar/gui/{a11y => }/ea-week-view-cell.c        |    0
 calendar/gui/{a11y => }/ea-week-view-cell.h        |    0
 calendar/gui/{a11y => }/ea-week-view-main-item.c   |    0
 calendar/gui/{a11y => }/ea-week-view-main-item.h   |    0
 calendar/gui/{a11y => }/ea-week-view.c             |    0
 calendar/gui/{a11y => }/ea-week-view.h             |    0
 configure.ac                                       |   15 +-
 doc/reference/shell/tmpl/e-shell-backend.sgml      |  132 +++++++++++
 doc/reference/shell/tmpl/e-shell-settings.sgml     |  151 +++++++++++++
 mail/Makefile.am                                   |  175 ++++++---------
 mail/e-mail-browser.c                              |    8 +-
 mail/e-mail-browser.h                              |    4 +-
 mail/e-mail-reader-utils.c                         |    8 +-
 mail/e-mail-reader.c                               |   59 ++---
 mail/e-mail-reader.h                               |   32 ++--
 mail/em-folder-tree.h                              |    1 -
 mail/em-utils.c                                    |  104 ++++-----
 mail/em-utils.h                                    |    6 +-
 mail/importers/Makefile.am                         |   33 +++
 mail/importers/evolution-mbox-importer.c           |    1 -
 mail/importers/mail-importer.c                     |   14 +-
 mail/mail-autofilter.c                             |   17 +--
 mail/mail-config.c                                 |   12 +-
 mail/mail-folder-cache.c                           |    5 +-
 mail/mail-mt.c                                     |   11 +-
 mail/mail-ops.c                                    |   14 +-
 mail/mail-send-recv.c                              |    1 -
 mail/mail-session.c                                |   12 +-
 mail/mail-session.h                                |    4 +-
 mail/mail-tools.c                                  |    6 +-
 mail/mail-vfolder.c                                |   43 +---
 modules/Makefile.am                                |    3 +
 .../component => modules/addressbook}/Makefile.am  |    2 +-
 .../addressbook}/addressbook-config.c              |    0
 .../addressbook}/addressbook-config.h              |    0
 .../apps_evolution_addressbook.schemas.in          |    0
 .../addressbook}/autocompletion-config.c           |    0
 .../addressbook}/autocompletion-config.h           |    0
 .../addressbook}/e-book-shell-backend.c            |    0
 .../addressbook}/e-book-shell-backend.h            |    0
 .../addressbook}/e-book-shell-content.c            |    0
 .../addressbook}/e-book-shell-content.h            |    2 +-
 .../addressbook}/e-book-shell-migrate.c            |    0
 .../addressbook}/e-book-shell-migrate.h            |    0
 .../addressbook}/e-book-shell-sidebar.c            |    0
 .../addressbook}/e-book-shell-sidebar.h            |    0
 .../addressbook}/e-book-shell-view-actions.c       |    0
 .../addressbook}/e-book-shell-view-actions.h       |    0
 .../addressbook}/e-book-shell-view-private.c       |    0
 .../addressbook}/e-book-shell-view-private.h       |    0
 .../addressbook}/e-book-shell-view.c               |    0
 .../addressbook}/e-book-shell-view.h               |    0
 .../addressbook}/eab-composer-util.c               |    0
 .../addressbook}/eab-composer-util.h               |    0
 .../addressbook}/evolution-module-addressbook.c    |    0
 .../addressbook}/ldap-config.glade                 |    0
 .../addressbook}/openldap-extract.h                |    0
 {calendar/module => modules/calendar}/Makefile.am  |    2 +-
 .../calendar}/e-cal-shell-backend.c                |    0
 .../calendar}/e-cal-shell-backend.h                |    0
 .../calendar}/e-cal-shell-content.c                |    0
 .../calendar}/e-cal-shell-content.h                |    0
 .../calendar}/e-cal-shell-migrate.c                |    0
 .../calendar}/e-cal-shell-migrate.h                |    0
 .../calendar}/e-cal-shell-settings.c               |    0
 .../calendar}/e-cal-shell-settings.h               |    0
 .../calendar}/e-cal-shell-sidebar.c                |    0
 .../calendar}/e-cal-shell-sidebar.h                |    0
 .../calendar}/e-cal-shell-view-actions.c           |    0
 .../calendar}/e-cal-shell-view-actions.h           |    0
 .../calendar}/e-cal-shell-view-memopad.c           |    0
 .../calendar}/e-cal-shell-view-private.c           |    0
 .../calendar}/e-cal-shell-view-private.h           |    0
 .../calendar}/e-cal-shell-view-taskpad.c           |    0
 .../module => modules/calendar}/e-cal-shell-view.c |    0
 .../module => modules/calendar}/e-cal-shell-view.h |    0
 .../calendar}/e-memo-shell-backend.c               |    0
 .../calendar}/e-memo-shell-backend.h               |    0
 .../calendar}/e-memo-shell-content.c               |    0
 .../calendar}/e-memo-shell-content.h               |    0
 .../calendar}/e-memo-shell-migrate.c               |    0
 .../calendar}/e-memo-shell-migrate.h               |    0
 .../calendar}/e-memo-shell-sidebar.c               |    0
 .../calendar}/e-memo-shell-sidebar.h               |    0
 .../calendar}/e-memo-shell-view-actions.c          |    0
 .../calendar}/e-memo-shell-view-actions.h          |    0
 .../calendar}/e-memo-shell-view-private.c          |    0
 .../calendar}/e-memo-shell-view-private.h          |    0
 .../calendar}/e-memo-shell-view.c                  |    0
 .../calendar}/e-memo-shell-view.h                  |    0
 .../calendar}/e-task-shell-backend.c               |    0
 .../calendar}/e-task-shell-backend.h               |    0
 .../calendar}/e-task-shell-content.c               |    0
 .../calendar}/e-task-shell-content.h               |    0
 .../calendar}/e-task-shell-migrate.c               |    0
 .../calendar}/e-task-shell-migrate.h               |    0
 .../calendar}/e-task-shell-sidebar.c               |    0
 .../calendar}/e-task-shell-sidebar.h               |    0
 .../calendar}/e-task-shell-view-actions.c          |    0
 .../calendar}/e-task-shell-view-actions.h          |    0
 .../calendar}/e-task-shell-view-private.c          |    0
 .../calendar}/e-task-shell-view-private.h          |    0
 .../calendar}/e-task-shell-view.c                  |    0
 .../calendar}/e-task-shell-view.h                  |    0
 .../calendar}/evolution-module-calendar.c          |    0
 modules/mail/Makefile.am                           |   56 +++++
 {mail => modules/mail}/e-attachment-handler-mail.c |    0
 {mail => modules/mail}/e-attachment-handler-mail.h |    0
 {mail => modules/mail}/e-mail-shell-backend.c      |   39 +++-
 {mail => modules/mail}/e-mail-shell-backend.h      |    0
 {mail => modules/mail}/e-mail-shell-content.c      |    0
 {mail => modules/mail}/e-mail-shell-content.h      |    0
 {mail => modules/mail}/e-mail-shell-migrate.c      |    0
 {mail => modules/mail}/e-mail-shell-migrate.h      |    0
 {mail => modules/mail}/e-mail-shell-settings.c     |    0
 {mail => modules/mail}/e-mail-shell-settings.h     |    0
 {mail => modules/mail}/e-mail-shell-sidebar.c      |    0
 {mail => modules/mail}/e-mail-shell-sidebar.h      |    0
 {mail => modules/mail}/e-mail-shell-view-actions.c |    0
 {mail => modules/mail}/e-mail-shell-view-actions.h |    0
 {mail => modules/mail}/e-mail-shell-view-private.c |    0
 {mail => modules/mail}/e-mail-shell-view-private.h |    0
 {mail => modules/mail}/e-mail-shell-view.c         |    0
 {mail => modules/mail}/e-mail-shell-view.h         |    0
 {mail => modules/mail}/em-account-editor.c         |    5 +-
 {mail => modules/mail}/em-account-editor.h         |    0
 {mail => modules/mail}/em-account-prefs.c          |    0
 {mail => modules/mail}/em-account-prefs.h          |    0
 {mail => modules/mail}/em-composer-prefs.c         |    2 +-
 {mail => modules/mail}/em-composer-prefs.h         |    0
 {mail => modules/mail}/em-mailer-prefs.c           |    0
 {mail => modules/mail}/em-mailer-prefs.h           |    0
 {mail => modules/mail}/em-network-prefs.c          |    0
 {mail => modules/mail}/em-network-prefs.h          |    0
 {mail => modules/mail}/evolution-module-mail.c     |    0
 plugins/attachment-reminder/Makefile.am            |    2 +-
 plugins/audio-inline/Makefile.am                   |    6 +-
 plugins/bogo-junk-plugin/Makefile.am               |    6 +-
 plugins/external-editor/Makefile.am                |    2 +-
 plugins/imap-features/Makefile.am                  |    8 +-
 plugins/mail-notification/Makefile.am              |    8 +-
 plugins/mark-all-read/Makefile.am                  |    4 +-
 plugins/sa-junk-plugin/Makefile.am                 |    6 +-
 plugins/vcard-inline/Makefile.am                   |    2 +-
 po/POTFILES.in                                     |  114 +++++-----
 widgets/misc/Makefile.am                           |   12 +-
 widgets/misc/e-calendar-item.c                     |    2 +-
 widgets/misc/{a11y => }/ea-calendar-cell.c         |    0
 widgets/misc/{a11y => }/ea-calendar-cell.h         |    0
 widgets/misc/{a11y => }/ea-calendar-item.c         |    0
 widgets/misc/{a11y => }/ea-calendar-item.h         |    0
 widgets/misc/{a11y => }/ea-widgets.c               |    0
 widgets/misc/{a11y => }/ea-widgets.h               |    0
 widgets/table/Makefile.am                          |   64 +++---
 widgets/table/e-cell-popup.c                       |    4 +-
 widgets/table/e-cell-text.c                        |    4 +-
 widgets/table/e-cell-toggle.c                      |    4 +-
 widgets/table/e-cell-tree.c                        |    4 +-
 widgets/table/e-cell-vbox.c                        |    4 +-
 widgets/table/e-table-click-to-add.c               |    2 +-
 widgets/table/e-table-item.c                       |    4 +-
 widgets/table/e-table.c                            |    2 +-
 widgets/table/e-tree.c                             |    2 +-
 widgets/table/{a11y => }/gal-a11y-e-cell-popup.c   |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-popup.h   |    2 +-
 .../table/{a11y => }/gal-a11y-e-cell-registry.c    |    0
 .../table/{a11y => }/gal-a11y-e-cell-registry.h    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-text.c    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-text.h    |    2 +-
 widgets/table/{a11y => }/gal-a11y-e-cell-toggle.c  |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-toggle.h  |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-tree.c    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-tree.h    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-vbox.c    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell-vbox.h    |    0
 widgets/table/{a11y => }/gal-a11y-e-cell.c         |    0
 widgets/table/{a11y => }/gal-a11y-e-cell.h         |    0
 .../gal-a11y-e-table-click-to-add-factory.c        |    0
 .../gal-a11y-e-table-click-to-add-factory.h        |    0
 .../{a11y => }/gal-a11y-e-table-click-to-add.c     |    0
 .../{a11y => }/gal-a11y-e-table-click-to-add.h     |    0
 .../{a11y => }/gal-a11y-e-table-column-header.c    |    0
 .../{a11y => }/gal-a11y-e-table-column-header.h    |    0
 .../table/{a11y => }/gal-a11y-e-table-factory.c    |    0
 .../table/{a11y => }/gal-a11y-e-table-factory.h    |    0
 .../{a11y => }/gal-a11y-e-table-item-factory.c     |    0
 .../{a11y => }/gal-a11y-e-table-item-factory.h     |    0
 widgets/table/{a11y => }/gal-a11y-e-table-item.c   |    0
 widgets/table/{a11y => }/gal-a11y-e-table-item.h   |    0
 widgets/table/{a11y => }/gal-a11y-e-table.c        |    0
 widgets/table/{a11y => }/gal-a11y-e-table.h        |    0
 widgets/table/{a11y => }/gal-a11y-e-tree-factory.c |    0
 widgets/table/{a11y => }/gal-a11y-e-tree-factory.h |    0
 widgets/table/{a11y => }/gal-a11y-e-tree.c         |    0
 widgets/table/{a11y => }/gal-a11y-e-tree.h         |    0
 widgets/text/Makefile.am                           |    8 +-
 widgets/text/e-text.c                              |    2 +-
 widgets/text/{a11y => }/gal-a11y-e-text-factory.c  |    0
 widgets/text/{a11y => }/gal-a11y-e-text-factory.h  |    0
 widgets/text/{a11y => }/gal-a11y-e-text.c          |    0
 widgets/text/{a11y => }/gal-a11y-e-text.h          |    0
 win32/Makefile.am                                  |    7 -
 237 files changed, 798 insertions(+), 806 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 12e6268..d7c022c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -35,29 +35,6 @@ if ENABLE_SMIME
 SMIME_DIR=smime
 endif
 
-# Disabled component and plugin directories during shell rewrite.
-
-#SUBDIRS = 			\
-#	win32			\
-#	data                    \
-#	e-util                  \
-#	a11y			\
-#	widgets                 \
-#	shell                   \
-#	filter			\
-#	$(SMIME_DIR)		\
-#	addressbook		\
-#	calendar		\
-#	art                     \
-#	composer		\
-#	mail			\
-#	plugins			\
-#	ui			\
-#	views			\
-#	tools			\
-#	po			\
-#	sounds
-
 SUBDIRS = 			\
 	win32			\
 	data			\
@@ -74,6 +51,7 @@ SUBDIRS = 			\
 	calendar		\
 	art			\
 	plugins			\
+	modules			\
 	doc			\
 	ui			\
 	views			\
diff --git a/addressbook/gui/Makefile.am b/addressbook/gui/Makefile.am
index 73c12f9..7f08bf4 100644
--- a/addressbook/gui/Makefile.am
+++ b/addressbook/gui/Makefile.am
@@ -1,3 +1,3 @@
-SUBDIRS = merging widgets contact-editor contact-list-editor component
+SUBDIRS = merging widgets contact-editor contact-list-editor
 
 -include $(top_srcdir)/git.mk
diff --git a/addressbook/gui/widgets/Makefile.am b/addressbook/gui/widgets/Makefile.am
index 45c0b0c..e940065 100644
--- a/addressbook/gui/widgets/Makefile.am
+++ b/addressbook/gui/widgets/Makefile.am
@@ -52,14 +52,14 @@ libeabwidgets_la_SOURCES =			\
 	gal-view-minicard.h			\
 	gal-view-factory-minicard.c		\
 	gal-view-factory-minicard.h		\
-	a11y/ea-minicard.c			\
-	a11y/ea-minicard.h			\
-	a11y/ea-minicard-view.c			\
-	a11y/ea-minicard-view.h			\
-	a11y/ea-addressbook-view.c		\
-	a11y/ea-addressbook-view.h		\
-	a11y/ea-addressbook.c			\
-	a11y/ea-addressbook.h
+	ea-minicard.c			\
+	ea-minicard.h			\
+	ea-minicard-view.c			\
+	ea-minicard-view.h			\
+	ea-addressbook-view.c		\
+	ea-addressbook-view.h		\
+	ea-addressbook.c			\
+	ea-addressbook.h
 
 libeabwidgets_la_LIBADD =					\
 	$(top_builddir)/widgets/misc/libemiscwidgets.la		\
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index 5df049d..ae79ead 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -33,7 +33,7 @@
 #include <shell/e-shell-sidebar.h>
 
 #include "addressbook/printing/e-contact-print.h"
-#include "a11y/ea-addressbook.h"
+#include "ea-addressbook.h"
 
 #include "e-util/e-print.h"
 #include "e-util/e-util.h"
diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c
index ece8d84..6ee55f8 100644
--- a/addressbook/gui/widgets/e-minicard-view.c
+++ b/addressbook/gui/widgets/e-minicard-view.c
@@ -34,7 +34,7 @@
 #include <glib/gi18n.h>
 #include <string.h>
 #include "e-util/e-util.h"
-#include "a11y/ea-addressbook.h"
+#include "ea-addressbook.h"
 
 static void e_minicard_view_drag_data_get(GtkWidget *widget,
 					  GdkDragContext *context,
diff --git a/addressbook/gui/widgets/e-minicard.c b/addressbook/gui/widgets/e-minicard.c
index 2d9deee..a8b6554 100644
--- a/addressbook/gui/widgets/e-minicard.c
+++ b/addressbook/gui/widgets/e-minicard.c
@@ -38,7 +38,7 @@
 #include <e-util/e-html-utils.h>
 #include <e-util/e-icon-factory.h>
 #include <libebook/e-destination.h>
-#include "a11y/ea-addressbook.h"
+#include "ea-addressbook.h"
 
 static void e_minicard_init		(EMinicard		 *card);
 static void e_minicard_class_init	(EMinicardClass	 *class);
diff --git a/addressbook/gui/widgets/a11y/ea-addressbook-view.c b/addressbook/gui/widgets/ea-addressbook-view.c
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-addressbook-view.c
rename to addressbook/gui/widgets/ea-addressbook-view.c
diff --git a/addressbook/gui/widgets/a11y/ea-addressbook-view.h b/addressbook/gui/widgets/ea-addressbook-view.h
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-addressbook-view.h
rename to addressbook/gui/widgets/ea-addressbook-view.h
diff --git a/addressbook/gui/widgets/a11y/ea-addressbook.c b/addressbook/gui/widgets/ea-addressbook.c
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-addressbook.c
rename to addressbook/gui/widgets/ea-addressbook.c
diff --git a/addressbook/gui/widgets/a11y/ea-addressbook.h b/addressbook/gui/widgets/ea-addressbook.h
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-addressbook.h
rename to addressbook/gui/widgets/ea-addressbook.h
diff --git a/addressbook/gui/widgets/a11y/ea-minicard-view.c b/addressbook/gui/widgets/ea-minicard-view.c
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-minicard-view.c
rename to addressbook/gui/widgets/ea-minicard-view.c
diff --git a/addressbook/gui/widgets/a11y/ea-minicard-view.h b/addressbook/gui/widgets/ea-minicard-view.h
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-minicard-view.h
rename to addressbook/gui/widgets/ea-minicard-view.h
diff --git a/addressbook/gui/widgets/a11y/ea-minicard.c b/addressbook/gui/widgets/ea-minicard.c
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-minicard.c
rename to addressbook/gui/widgets/ea-minicard.c
diff --git a/addressbook/gui/widgets/a11y/ea-minicard.h b/addressbook/gui/widgets/ea-minicard.h
similarity index 100%
rename from addressbook/gui/widgets/a11y/ea-minicard.h
rename to addressbook/gui/widgets/ea-minicard.h
diff --git a/calendar/Makefile.am b/calendar/Makefile.am
index 5da5338..87057a4 100644
--- a/calendar/Makefile.am
+++ b/calendar/Makefile.am
@@ -4,7 +4,7 @@ else
 CONDUIT_DIR =
 endif
 
-SUBDIRS = idl common importers gui $(CONDUIT_DIR) module
+SUBDIRS = idl common importers gui $(CONDUIT_DIR)
 
 error_DATA = calendar.error
 errordir = $(privdatadir)/errors
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index 0f669ee..b919da8 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -1,5 +1,5 @@
 if OS_WIN32
-WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail-shared.la
+WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail.la
 endif
 
 SUBDIRS = alarm-notify dialogs
@@ -24,7 +24,6 @@ INCLUDES =						\
 	-I$(top_srcdir)/calendar			\
 	-I$(top_srcdir)/widgets				\
 	-I$(top_srcdir)/widgets/misc			\
-	-I$(top_srcdir)/a11y/calendar			\
 	-DSEARCH_RULE_DIR=\"$(ruledir)\"		\
 	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"		\
 	-DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\"	\
@@ -177,30 +176,30 @@ libcal_gui_la_SOURCES =		\
 	weekday-picker.h
 
 # no gnome-cal no a11y. FIXME: KILL-BONOBO
-#	a11y/ea-calendar.c			\
-#	a11y/ea-calendar.h			\
-#	a11y/ea-calendar-helpers.c		\
-#	a11y/ea-calendar-helpers.h		\
-#	a11y/ea-cal-view.c			\
-#	a11y/ea-cal-view.h			\
-#	a11y/ea-cal-view-event.c		\
-#	a11y/ea-cal-view-event.h		\
-#	a11y/ea-day-view.c			\
-#	a11y/ea-day-view.h			\
-#	a11y/ea-day-view-main-item.c		\
-#	a11y/ea-day-view-main-item.h		\
-#	a11y/ea-day-view-cell.c			\
-#	a11y/ea-day-view-cell.h			\
-#	a11y/ea-week-view.c			\
-#	a11y/ea-week-view.h			\
-#	a11y/ea-week-view-main-item.c		\
-#	a11y/ea-week-view-main-item.h		\
-#	a11y/ea-week-view-cell.c		\
-#	a11y/ea-week-view-cell.h		\
-#	a11y/ea-jump-button.c			\
-#	a11y/ea-jump-button.h			\
-#	a11y/ea-gnome-calendar.c		\
-#	a11y/ea-gnome-calendar.h
+#	ea-calendar.c			\
+#	ea-calendar.h			\
+#	ea-calendar-helpers.c		\
+#	ea-calendar-helpers.h		\
+#	ea-cal-view.c			\
+#	ea-cal-view.h			\
+#	ea-cal-view-event.c		\
+#	ea-cal-view-event.h		\
+#	ea-day-view.c			\
+#	ea-day-view.h			\
+#	ea-day-view-main-item.c		\
+#	ea-day-view-main-item.h		\
+#	ea-day-view-cell.c			\
+#	ea-day-view-cell.h			\
+#	ea-week-view.c			\
+#	ea-week-view.h			\
+#	ea-week-view-main-item.c		\
+#	ea-week-view-main-item.h		\
+#	ea-week-view-cell.c		\
+#	ea-week-view-cell.h		\
+#	ea-jump-button.c			\
+#	ea-jump-button.h			\
+#	ea-gnome-calendar.c		\
+#	ea-gnome-calendar.h
 
 libcal_gui_la_LIBADD =					\
 	$(top_builddir)/composer/libcomposer.la				\
diff --git a/calendar/gui/a11y/ea-cal-view-event.c b/calendar/gui/ea-cal-view-event.c
similarity index 100%
rename from calendar/gui/a11y/ea-cal-view-event.c
rename to calendar/gui/ea-cal-view-event.c
diff --git a/calendar/gui/a11y/ea-cal-view-event.h b/calendar/gui/ea-cal-view-event.h
similarity index 100%
rename from calendar/gui/a11y/ea-cal-view-event.h
rename to calendar/gui/ea-cal-view-event.h
diff --git a/calendar/gui/a11y/ea-cal-view.c b/calendar/gui/ea-cal-view.c
similarity index 100%
rename from calendar/gui/a11y/ea-cal-view.c
rename to calendar/gui/ea-cal-view.c
diff --git a/calendar/gui/a11y/ea-cal-view.h b/calendar/gui/ea-cal-view.h
similarity index 100%
rename from calendar/gui/a11y/ea-cal-view.h
rename to calendar/gui/ea-cal-view.h
diff --git a/calendar/gui/a11y/ea-calendar-helpers.c b/calendar/gui/ea-calendar-helpers.c
similarity index 100%
rename from calendar/gui/a11y/ea-calendar-helpers.c
rename to calendar/gui/ea-calendar-helpers.c
diff --git a/calendar/gui/a11y/ea-calendar-helpers.h b/calendar/gui/ea-calendar-helpers.h
similarity index 100%
rename from calendar/gui/a11y/ea-calendar-helpers.h
rename to calendar/gui/ea-calendar-helpers.h
diff --git a/calendar/gui/a11y/ea-calendar.c b/calendar/gui/ea-calendar.c
similarity index 100%
rename from calendar/gui/a11y/ea-calendar.c
rename to calendar/gui/ea-calendar.c
diff --git a/calendar/gui/a11y/ea-calendar.h b/calendar/gui/ea-calendar.h
similarity index 100%
rename from calendar/gui/a11y/ea-calendar.h
rename to calendar/gui/ea-calendar.h
diff --git a/calendar/gui/a11y/ea-day-view-cell.c b/calendar/gui/ea-day-view-cell.c
similarity index 100%
rename from calendar/gui/a11y/ea-day-view-cell.c
rename to calendar/gui/ea-day-view-cell.c
diff --git a/calendar/gui/a11y/ea-day-view-cell.h b/calendar/gui/ea-day-view-cell.h
similarity index 100%
rename from calendar/gui/a11y/ea-day-view-cell.h
rename to calendar/gui/ea-day-view-cell.h
diff --git a/calendar/gui/a11y/ea-day-view-main-item.c b/calendar/gui/ea-day-view-main-item.c
similarity index 100%
rename from calendar/gui/a11y/ea-day-view-main-item.c
rename to calendar/gui/ea-day-view-main-item.c
diff --git a/calendar/gui/a11y/ea-day-view-main-item.h b/calendar/gui/ea-day-view-main-item.h
similarity index 100%
rename from calendar/gui/a11y/ea-day-view-main-item.h
rename to calendar/gui/ea-day-view-main-item.h
diff --git a/calendar/gui/a11y/ea-day-view.c b/calendar/gui/ea-day-view.c
similarity index 100%
rename from calendar/gui/a11y/ea-day-view.c
rename to calendar/gui/ea-day-view.c
diff --git a/calendar/gui/a11y/ea-day-view.h b/calendar/gui/ea-day-view.h
similarity index 100%
rename from calendar/gui/a11y/ea-day-view.h
rename to calendar/gui/ea-day-view.h
diff --git a/calendar/gui/a11y/ea-gnome-calendar.c b/calendar/gui/ea-gnome-calendar.c
similarity index 100%
rename from calendar/gui/a11y/ea-gnome-calendar.c
rename to calendar/gui/ea-gnome-calendar.c
diff --git a/calendar/gui/a11y/ea-gnome-calendar.h b/calendar/gui/ea-gnome-calendar.h
similarity index 100%
rename from calendar/gui/a11y/ea-gnome-calendar.h
rename to calendar/gui/ea-gnome-calendar.h
diff --git a/calendar/gui/a11y/ea-jump-button.c b/calendar/gui/ea-jump-button.c
similarity index 100%
rename from calendar/gui/a11y/ea-jump-button.c
rename to calendar/gui/ea-jump-button.c
diff --git a/calendar/gui/a11y/ea-jump-button.h b/calendar/gui/ea-jump-button.h
similarity index 100%
rename from calendar/gui/a11y/ea-jump-button.h
rename to calendar/gui/ea-jump-button.h
diff --git a/calendar/gui/a11y/ea-week-view-cell.c b/calendar/gui/ea-week-view-cell.c
similarity index 100%
rename from calendar/gui/a11y/ea-week-view-cell.c
rename to calendar/gui/ea-week-view-cell.c
diff --git a/calendar/gui/a11y/ea-week-view-cell.h b/calendar/gui/ea-week-view-cell.h
similarity index 100%
rename from calendar/gui/a11y/ea-week-view-cell.h
rename to calendar/gui/ea-week-view-cell.h
diff --git a/calendar/gui/a11y/ea-week-view-main-item.c b/calendar/gui/ea-week-view-main-item.c
similarity index 100%
rename from calendar/gui/a11y/ea-week-view-main-item.c
rename to calendar/gui/ea-week-view-main-item.c
diff --git a/calendar/gui/a11y/ea-week-view-main-item.h b/calendar/gui/ea-week-view-main-item.h
similarity index 100%
rename from calendar/gui/a11y/ea-week-view-main-item.h
rename to calendar/gui/ea-week-view-main-item.h
diff --git a/calendar/gui/a11y/ea-week-view.c b/calendar/gui/ea-week-view.c
similarity index 100%
rename from calendar/gui/a11y/ea-week-view.c
rename to calendar/gui/ea-week-view.c
diff --git a/calendar/gui/a11y/ea-week-view.h b/calendar/gui/ea-week-view.h
similarity index 100%
rename from calendar/gui/a11y/ea-week-view.h
rename to calendar/gui/ea-week-view.h
diff --git a/configure.ac b/configure.ac
index bd90aee..80bde6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,9 +25,12 @@ AM_INIT_AUTOMAKE([gnu 1.9])
 AC_CONFIG_HEADERS(config.h)
 AC_CONFIG_SRCDIR(README)
 
-# Gnome Doc Initialization
+# User Documentation
 GNOME_DOC_INIT
 
+# Developer Documentation
+GTK_DOC_CHECK(1.9)
+
 # Automake 1.11 - Silent Build Rules
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
@@ -1787,7 +1790,7 @@ plugins_experimental="$plugins_experimental_always $IPOD_SYNC $TNEF_ATTACHMENTS
 all_plugins_experimental="$plugins_experimental_always ipod-sync tnef-attachments"
 
 dnl Temporary KILL-BONOBO hack
-enable_plugins="attachment-reminder addressbook-file audio-inline bbdb bogo-junk-plugin caldav calendar-file calendar-http default-source external-editor google-account-setup hula-account-setup imap-features mail-notification mark-all-read plugin-manager profiler sa-junk-plugin save-calendar subject-thread $TNEF_ATTACHMENTS vcard-inline webdav-account-setup"
+enable_plugins="attachment-reminder addressbook-file audio-inline bbdb bogo-junk-plugin caldav calendar-file calendar-http default-source external-editor google-account-setup hula-account-setup imap-features mail-notification plugin-manager profiler sa-junk-plugin save-calendar subject-thread $TNEF_ATTACHMENTS vcard-inline webdav-account-setup"
 
 dnl PLUGINS NOT BUILDING YET
 dnl ------------------------
@@ -1803,6 +1806,7 @@ dnl ipod-sync
 dnl itip-formatter
 dnl mailing-list-actions
 dnl mail-to-task
+dnl mark-all-read
 dnl mono
 dnl prefer-plain
 dnl pst-import
@@ -1994,7 +1998,6 @@ a11y/Makefile
 addressbook/Makefile
 addressbook/conduit/Makefile
 addressbook/gui/Makefile
-addressbook/gui/component/Makefile
 addressbook/gui/contact-editor/Makefile
 addressbook/gui/contact-list-editor/Makefile
 addressbook/gui/merging/Makefile
@@ -2056,7 +2059,6 @@ calendar/conduits/memo/Makefile
 calendar/gui/Makefile
 calendar/gui/alarm-notify/Makefile
 calendar/gui/dialogs/Makefile
-calendar/module/Makefile
 composer/Makefile
 mail/Makefile
 mail/default/Makefile
@@ -2080,6 +2082,11 @@ mail/default/sr/Makefile
 mail/default/sr latin/Makefile
 mail/default/sv/Makefile
 mail/default/hu/Makefile
+mail/importers/Makefile
+modules/Makefile
+modules/addressbook/Makefile
+modules/calendar/Makefile
+modules/mail/Makefile
 plugins/Makefile
 plugins/addressbook-file/Makefile
 plugins/attachment-reminder/Makefile
diff --git a/doc/reference/shell/tmpl/e-shell-backend.sgml b/doc/reference/shell/tmpl/e-shell-backend.sgml
new file mode 100644
index 0000000..4d50f53
--- /dev/null
+++ b/doc/reference/shell/tmpl/e-shell-backend.sgml
@@ -0,0 +1,132 @@
+<!-- ##### SECTION Title ##### -->
+EShellBackend
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT EShellBackend ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL EShellBackend::activity-added ##### -->
+<para>
+
+</para>
+
+ eshellbackend: the object which received the signal.
+ arg1: 
+
+<!-- ##### ARG EShellBackend:shell ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION e_shell_backend_compare ##### -->
+<para>
+
+</para>
+
+ shell_backend_a: 
+ shell_backend_b: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_get_config_dir ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_get_data_dir ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_get_filename ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_get_shell ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_add_activity ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ activity: 
+
+
+<!-- ##### FUNCTION e_shell_backend_start ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+
+
+<!-- ##### FUNCTION e_shell_backend_is_busy ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_shutdown ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_backend_migrate ##### -->
+<para>
+
+</para>
+
+ shell_backend: 
+ major: 
+ minor: 
+ micro: 
+ error: 
+ Returns: 
+
+
diff --git a/doc/reference/shell/tmpl/e-shell-settings.sgml b/doc/reference/shell/tmpl/e-shell-settings.sgml
new file mode 100644
index 0000000..1e1d245
--- /dev/null
+++ b/doc/reference/shell/tmpl/e-shell-settings.sgml
@@ -0,0 +1,151 @@
+<!-- ##### SECTION Title ##### -->
+EShellSettings
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### STRUCT EShellSettings ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e_shell_settings_install_property ##### -->
+<para>
+
+</para>
+
+ pspec: 
+
+
+<!-- ##### FUNCTION e_shell_settings_bind_to_gconf ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ gconf_key: 
+
+
+<!-- ##### FUNCTION e_shell_settings_enable_debug ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+
+
+<!-- ##### FUNCTION e_shell_settings_get_boolean ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_settings_set_boolean ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ v_boolean: 
+
+
+<!-- ##### FUNCTION e_shell_settings_get_int ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_settings_set_int ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ v_int: 
+
+
+<!-- ##### FUNCTION e_shell_settings_get_string ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_settings_set_string ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ v_string: 
+
+
+<!-- ##### FUNCTION e_shell_settings_get_object ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_settings_set_object ##### -->
+<para>
+
+</para>
+
+ shell_settings: 
+ property_name: 
+ v_object: 
+
+
+<!-- ##### FUNCTION e_shell_settings_get_pointer ##### -->
+<para>
+
+</para>
+
+ shell_setting: 
+ property_name: 
+ Returns: 
+
+
+<!-- ##### FUNCTION e_shell_settings_set_pointer ##### -->
+<para>
+
+</para>
+
+ shell_setting: 
+ property_name: 
+ v_pointer: 
+
+
diff --git a/mail/Makefile.am b/mail/Makefile.am
index 5e9a7b9..8b7a123 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = default
+SUBDIRS = . default importers
 
 mailincludedir = $(privincludedir)/mail
 
@@ -31,158 +31,125 @@ INCLUDES =						\
 	-DPREFIX=\""$(prefix)"\"			\
 	-DG_LOG_DOMAIN=\"evolution-mail\"
 
-module_LTLIBRARIES =					\
-	libevolution-module-mail.la
+privsolib_LTLIBRARIES = libevolution-mail.la
 
-libevolution_module_mail_la_SOURCES =			\
-	evolution-module-mail.c				\
-	e-attachment-handler-mail.c			\
-	e-attachment-handler-mail.h			\
-	e-mail-attachment-bar.c				\
+mailinclude_HEADERS =					\
 	e-mail-attachment-bar.h				\
-	e-mail-browser.c				\
 	e-mail-browser.h				\
-	e-mail-display.c				\
 	e-mail-display.h				\
-	e-mail-label-dialog.c				\
 	e-mail-label-dialog.h				\
-	e-mail-label-list-store.c			\
 	e-mail-label-list-store.h			\
-	e-mail-label-manager.c				\
 	e-mail-label-manager.h				\
-	e-mail-label-tree-view.c			\
 	e-mail-label-tree-view.h			\
-	e-mail-local.c					\
 	e-mail-local.h					\
-	e-mail-reader.c					\
 	e-mail-reader.h					\
-	e-mail-reader-utils.c				\
 	e-mail-reader-utils.h				\
-	e-mail-search-bar.c				\
 	e-mail-search-bar.h				\
-	e-mail-shell-backend.c				\
-	e-mail-shell-backend.h				\
-	e-mail-shell-content.c				\
-	e-mail-shell-content.h				\
-	e-mail-shell-migrate.c				\
-	e-mail-shell-migrate.h				\
-	e-mail-shell-settings.c				\
-	e-mail-shell-settings.h				\
-	e-mail-shell-sidebar.c				\
-	e-mail-shell-sidebar.h				\
-	e-mail-shell-view.c				\
-	e-mail-shell-view.h				\
-	e-mail-shell-view-actions.c			\
-	e-mail-shell-view-actions.h			\
-	e-mail-shell-view-private.c			\
-	e-mail-shell-view-private.h			\
-	e-mail-store.c					\
 	e-mail-store.h					\
-	e-searching-tokenizer.c				\
 	e-searching-tokenizer.h				\
-	em-account-editor.c				\
-	em-account-editor.h				\
-	em-account-prefs.c				\
-	em-account-prefs.h				\
-	em-composer-prefs.c				\
-	em-composer-prefs.h				\
-	em-composer-utils.c				\
 	em-composer-utils.h				\
-	em-config.c					\
 	em-config.h					\
-	em-event.c					\
 	em-event.h					\
-	em-filter-context.c				\
 	em-filter-context.h				\
-	em-filter-editor.c				\
 	em-filter-editor.h				\
-	em-filter-folder-element.c			\
 	em-filter-folder-element.h			\
-	em-filter-rule.c				\
 	em-filter-rule.h				\
-	em-filter-source-element.c			\
 	em-filter-source-element.h			\
-	em-folder-properties.c				\
 	em-folder-properties.h				\
-	em-folder-selection.c				\
 	em-folder-selection.h				\
-	em-folder-selector.c				\
 	em-folder-selector.h				\
-	em-folder-selection-button.c			\
 	em-folder-selection-button.h			\
-	em-folder-tree.c				\
 	em-folder-tree.h				\
-	em-folder-tree-model.c				\
 	em-folder-tree-model.h				\
-	em-folder-utils.c				\
 	em-folder-utils.h				\
-	em-format-hook.c				\
 	em-format-hook.h				\
-	em-format-html.c				\
 	em-format-html.h				\
-	em-format-html-display.c			\
 	em-format-html-display.h			\
-	em-format-html-print.c				\
 	em-format-html-print.h				\
-	em-html-stream.c				\
 	em-html-stream.h				\
-	em-icon-stream.c				\
 	em-icon-stream.h				\
-	em-inline-filter.c				\
 	em-inline-filter.h				\
-	em-junk-hook.c					\
 	em-junk-hook.h					\
-	em-mailer-prefs.c				\
-	em-mailer-prefs.h				\
-	em-menu.c					\
 	em-menu.h					\
-	em-network-prefs.c				\
-	em-network-prefs.h				\
-	em-popup.c					\
 	em-popup.h					\
-	em-search-context.c				\
 	em-search-context.h				\
-	em-subscribe-editor.c				\
 	em-subscribe-editor.h				\
-	em-sync-stream.c				\
 	em-sync-stream.h				\
-	em-utils.c					\
 	em-utils.h					\
-	em-vfolder-context.c				\
 	em-vfolder-context.h				\
-	em-vfolder-editor.c				\
 	em-vfolder-editor.h				\
-	em-vfolder-rule.c				\
 	em-vfolder-rule.h				\
-	mail-autofilter.c				\
 	mail-autofilter.h				\
-	mail-config.c					\
 	mail-config.h					\
-	mail-folder-cache.c				\
 	mail-folder-cache.h				\
-	mail-mt.c					\
 	mail-mt.h					\
-	mail-ops.c					\
 	mail-ops.h					\
-	mail-send-recv.c				\
 	mail-send-recv.h				\
-	mail-session.c					\
 	mail-session.h					\
-	mail-tools.c					\
 	mail-tools.h					\
-	mail-vfolder.c					\
 	mail-vfolder.h					\
-	message-list.c					\
 	message-list.h					\
-	message-tag-editor.c				\
 	message-tag-editor.h				\
-	message-tag-followup.c				\
-	message-tag-followup.h				\
-	importers/mail-importer.c			\
-	importers/mail-importer.h			\
-	importers/elm-importer.c			\
-	importers/pine-importer.c			\
-	importers/evolution-mbox-importer.c
+	message-tag-followup.h
+
+libevolution_mail_la_SOURCES =				\
+	e-mail-attachment-bar.c				\
+	e-mail-browser.c				\
+	e-mail-display.c				\
+	e-mail-label-dialog.c				\
+	e-mail-label-list-store.c			\
+	e-mail-label-manager.c				\
+	e-mail-label-tree-view.c			\
+	e-mail-local.c					\
+	e-mail-reader.c					\
+	e-mail-reader-utils.c				\
+	e-mail-search-bar.c				\
+	e-mail-store.c					\
+	e-searching-tokenizer.c				\
+	em-composer-utils.c				\
+	em-config.c					\
+	em-event.c					\
+	em-filter-context.c				\
+	em-filter-editor.c				\
+	em-filter-folder-element.c			\
+	em-filter-rule.c				\
+	em-filter-source-element.c			\
+	em-folder-properties.c				\
+	em-folder-selection.c				\
+	em-folder-selector.c				\
+	em-folder-selection-button.c			\
+	em-folder-tree.c				\
+	em-folder-tree-model.c				\
+	em-folder-utils.c				\
+	em-format-hook.c				\
+	em-format-html.c				\
+	em-format-html-display.c			\
+	em-format-html-print.c				\
+	em-html-stream.c				\
+	em-icon-stream.c				\
+	em-inline-filter.c				\
+	em-junk-hook.c					\
+	em-menu.c					\
+	em-popup.c					\
+	em-search-context.c				\
+	em-subscribe-editor.c				\
+	em-sync-stream.c				\
+	em-utils.c					\
+	em-vfolder-context.c				\
+	em-vfolder-editor.c				\
+	em-vfolder-rule.c				\
+	mail-autofilter.c				\
+	mail-config.c					\
+	mail-folder-cache.c				\
+	mail-mt.c					\
+	mail-ops.c					\
+	mail-send-recv.c				\
+	mail-session.c					\
+	mail-tools.c					\
+	mail-vfolder.c					\
+	message-list.c					\
+	message-tag-editor.c				\
+	message-tag-followup.c
 
 if ENABLE_SMIME
 SMIME_LIBS =						\
@@ -190,7 +157,7 @@ SMIME_LIBS =						\
 	$(top_builddir)/smime/gui/libevolution-smime.la
 endif
 
-libevolution_module_mail_la_LIBADD =			\
+libevolution_mail_la_LIBADD =				\
 	$(top_builddir)/e-util/libeutil.la		\
 	$(top_builddir)/shell/libeshell.la		\
 	$(top_builddir)/composer/libcomposer.la		\
@@ -199,20 +166,10 @@ libevolution_module_mail_la_LIBADD =			\
 	$(top_builddir)/widgets/misc/libemiscwidgets.la	\
 	$(top_builddir)/addressbook/gui/contact-editor/libecontacteditor.la \
 	$(top_builddir)/addressbook/gui/contact-list-editor/libecontactlisteditor.la \
+	$(GTKHTML_LIBS)					\
 	$(SMIME_LIBS)
 
-#libevolution_mail_la_LIBADD =					\
-#	$(top_builddir)/widgets/misc/libefilterbar.la		\
-#	$(top_builddir)/filter/libfilter.la			\
-#	$(top_builddir)/widgets/menus/libmenus.la		\
-#	$(top_builddir)/addressbook/util/libeabutil.la		\
-#	$(EVOLUTION_MAIL_LIBS)					\
-#	$(GTKHTML_LIBS)						\
-#	$(REGEX_LIBS)						\
-#	$(THREADS_LIBS)
-
-libevolution_module_mail_la_LDFLAGS = 			\
-	-avoid-version -module $(NO_UNDEFINED)
+libevolution_mail_la_LDFLAGS = $(NO_UNDEFINED)
 
 libevolution_mail_la_DEPENDENCIES = em-filter-i18n.h
 
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index e4013c5..1dd3fae 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -32,7 +32,6 @@
 #include "mail/e-mail-reader.h"
 #include "mail/e-mail-reader-utils.h"
 #include "mail/e-mail-search-bar.h"
-#include "mail/e-mail-shell-backend.h"
 #include "mail/em-folder-tree-model.h"
 #include "mail/em-format-html-display.h"
 #include "mail/message-list.h"
@@ -705,14 +704,13 @@ e_mail_browser_get_type (void)
 }
 
 GtkWidget *
-e_mail_browser_new (EMailShellBackend *mail_shell_backend)
+e_mail_browser_new (EShellBackend *shell_backend)
 {
-	g_return_val_if_fail (
-		E_IS_MAIL_SHELL_BACKEND (mail_shell_backend), NULL);
+	g_return_val_if_fail (E_IS_SHELL_BACKEND (shell_backend), NULL);
 
 	return g_object_new (
 		E_TYPE_MAIL_BROWSER,
-		"shell-backend", mail_shell_backend, NULL);
+		"shell-backend", shell_backend, NULL);
 }
 
 void
diff --git a/mail/e-mail-browser.h b/mail/e-mail-browser.h
index 2605b2e..f2fd4d9 100644
--- a/mail/e-mail-browser.h
+++ b/mail/e-mail-browser.h
@@ -23,7 +23,7 @@
 #define E_MAIL_BROWSER_H
 
 #include <gtk/gtk.h>
-#include <mail/e-mail-shell-backend.h>
+#include <shell/e-shell-backend.h>
 
 /* Standard GObject macros */
 #define E_TYPE_MAIL_BROWSER \
@@ -60,7 +60,7 @@ struct _EMailBrowserClass {
 };
 
 GType		e_mail_browser_get_type		(void);
-GtkWidget *	e_mail_browser_new		(EMailShellBackend *mail_shell_backend);
+GtkWidget *	e_mail_browser_new		(EShellBackend *shell_backend);
 void		e_mail_browser_close		(EMailBrowser *browser);
 gboolean	e_mail_browser_get_show_deleted	(EMailBrowser *browser);
 void		e_mail_browser_set_show_deleted (EMailBrowser *browser,
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index f0999be..b9bde5b 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -190,7 +190,6 @@ e_mail_reader_mark_selected (EMailReader *reader,
 guint
 e_mail_reader_open_selected (EMailReader *reader)
 {
-	EMailShellBackend *mail_shell_backend;
 	EShellBackend *shell_backend;
 	MessageList *message_list;
 	CamelFolder *folder;
@@ -206,8 +205,6 @@ e_mail_reader_open_selected (EMailReader *reader)
 	shell_backend = e_mail_reader_get_shell_backend (reader);
 	window = e_mail_reader_get_window (reader);
 
-	mail_shell_backend = E_MAIL_SHELL_BACKEND (shell_backend);
-
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
@@ -280,7 +277,7 @@ e_mail_reader_open_selected (EMailReader *reader)
 		const gchar *uid = views->pdata[ii];
 		GtkWidget *browser;
 
-		browser = e_mail_browser_new (mail_shell_backend);
+		browser = e_mail_browser_new (shell_backend);
 		e_mail_reader_set_folder (
 			E_MAIL_READER (browser), folder, folder_uri);
 		e_mail_reader_set_message (
@@ -405,9 +402,6 @@ e_mail_reader_reply_to_message (EMailReader *reader,
 	uid = message_list->cursor_uid;
 	g_return_if_fail (uid != NULL);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	if (!gtk_html_command (html, "is-selection-active"))
 		goto whole_message;
 
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index a58e0ac..6d680ae 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -40,7 +40,6 @@
 #include "mail/e-mail-browser.h"
 #include "mail/e-mail-display.h"
 #include "mail/e-mail-reader-utils.h"
-#include "mail/e-mail-shell-backend.h"
 #include "mail/em-composer-utils.h"
 #include "mail/em-event.h"
 #include "mail/em-folder-selector.h"
@@ -342,9 +341,6 @@ action_mail_forward_cb (GtkAction *action,
 	message_list = e_mail_reader_get_message_list (reader);
 	window = e_mail_reader_get_window (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
@@ -365,9 +361,6 @@ action_mail_forward_attached_cb (GtkAction *action,
 	message_list = e_mail_reader_get_message_list (reader);
 	window = e_mail_reader_get_window (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
@@ -388,9 +381,6 @@ action_mail_forward_inline_cb (GtkAction *action,
 	message_list = e_mail_reader_get_message_list (reader);
 	window = e_mail_reader_get_window (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
@@ -411,9 +401,6 @@ action_mail_forward_quoted_cb (GtkAction *action,
 	message_list = e_mail_reader_get_message_list (reader);
 	window = e_mail_reader_get_window (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
@@ -517,9 +504,6 @@ action_mail_message_edit_cb (GtkAction *action,
 	window = e_mail_reader_get_window (reader);
 	message_list = e_mail_reader_get_message_list (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	folder = message_list->folder;
 	uids = message_list_get_selected (message_list);
 
@@ -536,9 +520,6 @@ action_mail_message_new_cb (GtkAction *action,
 	message_list = e_mail_reader_get_message_list (reader);
 	window = e_mail_reader_get_window (reader);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	em_utils_compose_new_message (message_list->folder_uri);
 }
 
@@ -746,9 +727,6 @@ action_mail_redirect_cb (GtkAction *action,
 	uid = message_list->cursor_uid;
 	g_return_if_fail (uid != NULL);
 
-	if (!em_utils_check_user_can_send_mail (window))
-		return;
-
 	em_utils_redirect_message_by_uid (folder, uid);
 }
 
@@ -861,7 +839,6 @@ action_mail_show_source_cb (GtkAction *action,
                             EMailReader *reader)
 {
 	EMFormatHTMLDisplay *html_display;
-	EMailShellBackend *mail_shell_backend;
 	EShellBackend *shell_backend;
 	MessageList *message_list;
 	CamelFolder *folder;
@@ -871,14 +848,13 @@ action_mail_show_source_cb (GtkAction *action,
 
 	message_list = e_mail_reader_get_message_list (reader);
 	shell_backend = e_mail_reader_get_shell_backend (reader);
-	mail_shell_backend = E_MAIL_SHELL_BACKEND (shell_backend);
 
 	folder = message_list->folder;
 	folder_uri = message_list->folder_uri;
 	uids = message_list_get_selected (message_list);
 	g_return_if_fail (uids->len > 0);
 
-	browser = e_mail_browser_new (mail_shell_backend);
+	browser = e_mail_browser_new (shell_backend);
 	reader = E_MAIL_READER (browser);
 	html_display = e_mail_reader_get_html_display (reader);
 	em_format_set_mode (EM_FORMAT (html_display), EM_FORMAT_SOURCE);
@@ -2251,6 +2227,8 @@ e_mail_reader_check_state (EMailReader *reader)
 			can_flag_for_followup = TRUE;
 	}
 
+	if (em_utils_check_user_can_send_mail ())
+		state |= E_MAIL_READER_HAVE_ACCOUNT;
 	if (uids->len == 1)
 		state |= E_MAIL_READER_SELECTION_SINGLE;
 	if (uids->len > 1)
@@ -2284,8 +2262,6 @@ e_mail_reader_check_state (EMailReader *reader)
 	if (has_unread)
 		state |= E_MAIL_READER_SELECTION_HAS_UNREAD;
 #if 0  /* FIXME */
-	if (has_callto_uri)
-		state |= E_MAIL_READER_SELECTION_HAS_URI_CALLTO;
 	if (has_http_uri)
 		state |= E_MAIL_READER_SELECTION_HAS_URI_HTTP;
 	if (has_mailto_uri)
@@ -2318,7 +2294,7 @@ e_mail_reader_update_actions (EMailReader *reader)
 	gboolean enable_flag_clear;
 	gboolean enable_flag_completed;
 	gboolean enable_flag_for_followup;
-	gboolean single_message_selected;
+	gboolean have_an_account;
 	gboolean multiple_messages_selected;
 	gboolean selection_has_deleted_messages;
 	gboolean selection_has_important_messages;
@@ -2329,6 +2305,7 @@ e_mail_reader_update_actions (EMailReader *reader)
 	gboolean selection_has_unimportant_messages;
 	gboolean selection_has_unread_messages;
 	gboolean selection_is_mailing_list;
+	gboolean single_message_selected;
 
 	g_return_if_fail (E_IS_MAIL_READER (reader));
 
@@ -2342,6 +2319,8 @@ e_mail_reader_update_actions (EMailReader *reader)
 	disable_printing = e_shell_settings_get_boolean (
 		shell_settings, "disable-printing");
 
+	have_an_account =
+		(state & E_MAIL_READER_HAVE_ACCOUNT);
 	single_message_selected =
 		(state & E_MAIL_READER_SELECTION_SINGLE);
 	multiple_messages_selected =
@@ -2397,22 +2376,22 @@ e_mail_reader_update_actions (EMailReader *reader)
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-forward";
-	sensitive = any_messages_selected;
+	sensitive = have_an_account && any_messages_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-forward-attached";
-	sensitive = any_messages_selected;
+	sensitive = have_an_account && any_messages_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-forward-inline";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-forward-quoted";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
@@ -2452,7 +2431,12 @@ e_mail_reader_update_actions (EMailReader *reader)
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-message-edit";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
+	action = e_mail_reader_get_action (reader, action_name);
+	gtk_action_set_sensitive (action, sensitive);
+
+	action_name = "mail-message-new";
+	sensitive = have_an_account;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
@@ -2502,22 +2486,23 @@ e_mail_reader_update_actions (EMailReader *reader)
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-redirect";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-reply-all";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-reply-list";
-	sensitive = single_message_selected && selection_is_mailing_list;
+	sensitive = have_an_account && single_message_selected &&
+		selection_is_mailing_list;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
 	action_name = "mail-reply-sender";
-	sensitive = single_message_selected;
+	sensitive = have_an_account && single_message_selected;
 	action = e_mail_reader_get_action (reader, action_name);
 	gtk_action_set_sensitive (action, sensitive);
 
diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h
index c55ba92..08d6f23 100644
--- a/mail/e-mail-reader.h
+++ b/mail/e-mail-reader.h
@@ -56,22 +56,22 @@ typedef struct _EMailReader EMailReader;
 typedef struct _EMailReaderIface EMailReaderIface;
 
 enum {
-	E_MAIL_READER_SELECTION_SINGLE			= 1 << 0,
-	E_MAIL_READER_SELECTION_MULTIPLE		= 1 << 1,
-	E_MAIL_READER_SELECTION_CAN_ADD_SENDER		= 1 << 2,
-	E_MAIL_READER_SELECTION_CAN_EDIT		= 1 << 3,
-	E_MAIL_READER_SELECTION_FLAG_CLEAR		= 1 << 4,
-	E_MAIL_READER_SELECTION_FLAG_COMPLETED		= 1 << 5,
-	E_MAIL_READER_SELECTION_FLAG_FOLLOWUP		= 1 << 6,
-	E_MAIL_READER_SELECTION_HAS_DELETED		= 1 << 7,
-	E_MAIL_READER_SELECTION_HAS_IMPORTANT		= 1 << 8,
-	E_MAIL_READER_SELECTION_HAS_JUNK		= 1 << 9,
-	E_MAIL_READER_SELECTION_HAS_NOT_JUNK		= 1 << 10,
-	E_MAIL_READER_SELECTION_HAS_READ		= 1 << 11,
-	E_MAIL_READER_SELECTION_HAS_UNDELETED		= 1 << 12,
-	E_MAIL_READER_SELECTION_HAS_UNIMPORTANT		= 1 << 13,
-	E_MAIL_READER_SELECTION_HAS_UNREAD		= 1 << 14,
-	E_MAIL_READER_SELECTION_HAS_URI_CALLTO		= 1 << 15,
+	E_MAIL_READER_HAVE_ACCOUNT			= 1 << 0,
+	E_MAIL_READER_SELECTION_SINGLE			= 1 << 1,
+	E_MAIL_READER_SELECTION_MULTIPLE		= 1 << 2,
+	E_MAIL_READER_SELECTION_CAN_ADD_SENDER		= 1 << 3,
+	E_MAIL_READER_SELECTION_CAN_EDIT		= 1 << 4,
+	E_MAIL_READER_SELECTION_FLAG_CLEAR		= 1 << 5,
+	E_MAIL_READER_SELECTION_FLAG_COMPLETED		= 1 << 6,
+	E_MAIL_READER_SELECTION_FLAG_FOLLOWUP		= 1 << 7,
+	E_MAIL_READER_SELECTION_HAS_DELETED		= 1 << 8,
+	E_MAIL_READER_SELECTION_HAS_IMPORTANT		= 1 << 9,
+	E_MAIL_READER_SELECTION_HAS_JUNK		= 1 << 10,
+	E_MAIL_READER_SELECTION_HAS_NOT_JUNK		= 1 << 11,
+	E_MAIL_READER_SELECTION_HAS_READ		= 1 << 12,
+	E_MAIL_READER_SELECTION_HAS_UNDELETED		= 1 << 13,
+	E_MAIL_READER_SELECTION_HAS_UNIMPORTANT		= 1 << 14,
+	E_MAIL_READER_SELECTION_HAS_UNREAD		= 1 << 15,
 	E_MAIL_READER_SELECTION_HAS_URI_HTTP		= 1 << 16,
 	E_MAIL_READER_SELECTION_HAS_URI_MAILTO		= 1 << 17,
 	E_MAIL_READER_SELECTION_IS_MAILING_LIST		= 1 << 18
diff --git a/mail/em-folder-tree.h b/mail/em-folder-tree.h
index b92c0a2..74b79d3 100644
--- a/mail/em-folder-tree.h
+++ b/mail/em-folder-tree.h
@@ -26,7 +26,6 @@
 
 #include <gtk/gtk.h>
 #include <camel/camel-store.h>
-#include <mail/e-mail-shell-backend.h>
 #include <mail/em-folder-tree-model.h>
 
 /* Standard GObject macros */
diff --git a/mail/em-utils.c b/mail/em-utils.c
index dffa11b..a971b90 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -71,21 +71,49 @@
 #include "e-util/e-account-utils.h"
 #include "e-util/e-dialog-utils.h"
 #include "e-util/e-error.h"
+#include "shell/e-shell.h"
 #include "widgets/misc/e-alert-activity.h"
 #include "widgets/misc/e-attachment.h"
 
 #include "em-utils.h"
 #include "em-composer-utils.h"
 #include "em-format-quote.h"
-#include "em-account-editor.h"
-
 #include "e-mail-local.h"
-#include "e-mail-shell-backend.h"
 
 static void emu_save_part_done (CamelMimePart *part, gchar *name, gint done, gpointer data);
 
 #define d(x)
 
+const gchar *
+em_utils_get_data_dir (void)
+{
+	EShell *shell;
+	EShellBackend *shell_backend;
+
+	/* XXX This is a temporary solution until I can figure out a
+	 *     better way.  Ideally, nothing below the module layer
+	 *     should need to know about the user data directory. */
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+	return e_shell_backend_get_data_dir (shell_backend);
+}
+
+const gchar *
+em_utils_get_config_dir (void)
+{
+	EShell *shell;
+	EShellBackend *shell_backend;
+
+	/* XXX This is a temporary solution until I can figure out a
+	 *     better way.  Ideally, nothing below the module layer
+	 *     should need to know about the user config directory. */
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+	return e_shell_backend_get_config_dir (shell_backend);
+}
+
 /**
  * em_utils_prompt_user:
  * @parent: parent window
@@ -174,69 +202,22 @@ em_utils_uids_free (GPtrArray *uids)
 	g_ptr_array_free (uids, TRUE);
 }
 
-static void
-druid_destroy_cb (gpointer user_data, GObject *deadbeef)
-{
-	gtk_main_quit ();
-}
-
-/**
- * em_utils_configure_account:
- * @parent: parent window for the druid to be a child of.
- *
- * Displays a druid allowing the user to configure an account. If
- * @parent is non-NULL, then the druid will be created as a child
- * window of @parent's toplevel window.
- *
- * Returns %TRUE if an account has been configured or %FALSE
- * otherwise.
- **/
-gboolean
-em_utils_configure_account (GtkWindow *parent)
-{
-	EMAccountEditor *emae;
-	EAccountList *account_list;
-
-	g_return_val_if_fail (GTK_IS_WINDOW (parent), FALSE);
-
-	emae = em_account_editor_new(NULL, EMAE_DRUID, "org.gnome.evolution.mail.config.accountDruid");
-	gtk_window_set_transient_for (GTK_WINDOW (emae->editor), parent);
-
-	g_object_weak_ref((GObject *)emae->editor, (GWeakNotify) druid_destroy_cb, NULL);
-	gtk_widget_show(emae->editor);
-	gtk_grab_add(emae->editor);
-	gtk_main();
-
-	account_list = e_get_account_list ();
-
-	return (e_list_length ((EList *) account_list) > 0);
-}
-
 /**
  * em_utils_check_user_can_send_mail:
- * @parent: parent window for the druid to be a child of.
- *
- * If no accounts have been configured, the user will be given a
- * chance to configure an account. In the case that no accounts are
- * configured, a druid will be created. If @parent is non-NULL, then
- * the druid will be created as a child window of @parent's toplevel
- * window.
  *
  * Returns %TRUE if the user has an account configured (to send mail)
  * or %FALSE otherwise.
  **/
 gboolean
-em_utils_check_user_can_send_mail (GtkWindow *parent)
+em_utils_check_user_can_send_mail (void)
 {
 	EAccountList *account_list;
 	EAccount *account;
 
 	account_list = e_get_account_list ();
 
-	if (e_list_length ((EList *) account_list) == 0) {
-		if (!em_utils_configure_account (parent))
-			return FALSE;
-	}
+	if (e_list_length ((EList *) account_list) == 0)
+		return FALSE;
 
 	if (!(account = e_get_default_account ()))
 		return FALSE;
@@ -255,16 +236,13 @@ static GtkWidget *filter_editor = NULL;
 static void
 em_filter_editor_response (GtkWidget *dialog, gint button, gpointer user_data)
 {
-	EShellBackend *shell_backend;
 	EMFilterContext *fc;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	if (button == GTK_RESPONSE_OK) {
 		const gchar *data_dir;
 		gchar *user;
 
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		fc = g_object_get_data ((GObject *) dialog, "context");
 		user = g_strdup_printf ("%s/filters.xml", data_dir);
 		rule_context_save ((RuleContext *) fc, user);
@@ -293,7 +271,6 @@ static EMFilterSource em_filter_source_element_names[] = {
 void
 em_utils_edit_filters (GtkWidget *parent)
 {
-	EShellBackend *shell_backend;
 	const gchar *data_dir;
 	gchar *user, *system;
 	EMFilterContext *fc;
@@ -303,8 +280,7 @@ em_utils_edit_filters (GtkWidget *parent)
 		return;
 	}
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 
 	fc = em_filter_context_new ();
 	user = g_build_filename (data_dir, "filters.xml", NULL);
@@ -2292,10 +2268,12 @@ em_utils_clear_get_password_canceled_accounts_flag (void)
 void
 em_utils_show_error_silent (GtkWidget *widget)
 {
+	EShell *shell;
 	EShellBackend *shell_backend;
 	EActivity *activity;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
 
 	activity = e_alert_activity_new_warning (widget);
 	e_shell_backend_add_activity (shell_backend, activity);
@@ -2310,10 +2288,12 @@ em_utils_show_error_silent (GtkWidget *widget)
 void
 em_utils_show_info_silent (GtkWidget *widget)
 {
+	EShell *shell;
 	EShellBackend *shell_backend;
 	EActivity *activity;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
 
 	activity = e_alert_activity_new_info (widget);
 	e_shell_backend_add_activity (shell_backend, activity);
diff --git a/mail/em-utils.h b/mail/em-utils.h
index 64c4d7a..14dc8ce 100644
--- a/mail/em-utils.h
+++ b/mail/em-utils.h
@@ -38,13 +38,15 @@ G_BEGIN_DECLS
 
 struct _EMFormat;
 
+const gchar *	em_utils_get_data_dir		(void);
+const gchar *	em_utils_get_config_dir		(void);
+
 gboolean em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag, const gchar *arg0, ...);
 
 GPtrArray *em_utils_uids_copy (GPtrArray *uids);
 void em_utils_uids_free (GPtrArray *uids);
 
-gboolean em_utils_configure_account (GtkWindow *parent);
-gboolean em_utils_check_user_can_send_mail (GtkWindow *parent);
+gboolean em_utils_check_user_can_send_mail (void);
 
 void em_utils_edit_filters (GtkWidget *parent);
 void em_filename_make_safe (gchar *string);
diff --git a/mail/importers/Makefile.am b/mail/importers/Makefile.am
new file mode 100644
index 0000000..ecd883c
--- /dev/null
+++ b/mail/importers/Makefile.am
@@ -0,0 +1,33 @@
+if OS_WIN32
+WIN32_BOOTSTRAP_LIBS = \
+	$(top_builddir)/win32/libevolution-mail.la
+endif
+
+privsolib_LTLIBRARIES = libevolution-mail-importers.la
+
+INCLUDES = -I.. 					\
+	-I$(srcdir)/..					\
+	-I$(top_srcdir)					\
+	-I$(top_srcdir)/widgets				\
+	$(EVOLUTION_MAIL_CFLAGS)			\
+	-DG_LOG_DOMAIN=\"evolution-mail-importer\"	\
+	-DEVOLUTION_PRIVDATADIR=\""$(privdatadir)"\"	\
+	$(IMPORTERS_CFLAGS)
+
+libevolution_mail_importers_la_SOURCES =	\
+	mail-importer.c				\
+	mail-importer.h				\
+	elm-importer.c				\
+	pine-importer.c				\
+	evolution-mbox-importer.c
+
+libevolution_mail_importers_la_LDFLAGS = $(NO_UNDEFINED)
+
+libevolution_mail_importers_la_LIBADD =				\
+	$(WIN32_BOOTSTRAP_LIBS)					\
+	$(top_builddir)/e-util/libeutil.la			\
+	$(top_builddir)/filter/libfilter.la			\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(IMPORTERS_LIBS)
+
+-include $(top_srcdir)/git.mk
diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c
index e44cf57..ade3452 100644
--- a/mail/importers/evolution-mbox-importer.c
+++ b/mail/importers/evolution-mbox-importer.c
@@ -42,7 +42,6 @@
 
 #include "mail/e-mail-local.h"
 #include "mail/e-mail-store.h"
-#include "mail/e-mail-shell-backend.h"
 #include "mail/em-folder-selection-button.h"
 #include "mail/em-folder-tree-model.h"
 #include "mail/mail-mt.h"
diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c
index 1e1f423..dd4de63 100644
--- a/mail/importers/mail-importer.c
+++ b/mail/importers/mail-importer.c
@@ -45,12 +45,12 @@
 #include <camel/camel-stream-mem.h>
 
 #include "e-util/e-util-private.h"
+#include "shell/e-shell-backend.h"
 
-#include "mail/mail-mt.h"
-#include "mail/mail-tools.h"
-
-#include "mail/e-mail-local.h"
-#include "mail/e-mail-shell-backend.h"
+#include "mail-mt.h"
+#include "mail-tools.h"
+#include "e-mail-local.h"
+#include "em-utils.h"
 
 #include "mail-importer.h"
 
@@ -358,7 +358,6 @@ struct _import_folders_data {
 static void
 import_folders_rec(struct _import_folders_data *m, const gchar *filepath, const gchar *folderparent)
 {
-	EShellBackend *shell_backend;
 	GDir *dir;
 	const gchar *d;
 	struct stat st;
@@ -370,8 +369,7 @@ import_folders_rec(struct _import_folders_data *m, const gchar *filepath, const
 	if (dir == NULL)
 		return;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 
 	utf8_filename = g_filename_to_utf8 (filepath, -1, NULL, NULL, NULL);
 	camel_operation_start(NULL, _("Scanning %s"), utf8_filename);
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index a9f757e..fd7fc57 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -48,8 +48,6 @@
 #include <camel/camel-internet-address.h>
 #include <camel/camel-mime-message.h>
 
-#include "e-mail-shell-backend.h"
-
 #define d(x)
 
 static void
@@ -346,7 +344,6 @@ filter_rule_from_message (EMFilterContext *context, CamelMimeMessage *msg, gint
 void
 filter_gui_add_from_message (CamelMimeMessage *msg, const gchar *source, gint flags)
 {
-	EShellBackend *shell_backend;
 	EMFilterContext *fc;
 	const gchar *data_dir;
 	gchar *user, *system;
@@ -354,10 +351,8 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const gchar *source, gint fl
 
 	g_return_if_fail (msg != NULL);
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	fc = em_filter_context_new ();
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	user = g_build_filename (data_dir, "filters.xml", NULL);
 	system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
 	rule_context_load ((RuleContext *)fc, system, user);
@@ -375,7 +370,6 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const gchar *source, gint fl
 void
 mail_filter_rename_uri(CamelStore *store, const gchar *olduri, const gchar *newuri)
 {
-	EShellBackend *shell_backend;
 	EMFilterContext *fc;
 	const gchar *data_dir;
 	gchar *user, *system;
@@ -385,10 +379,8 @@ mail_filter_rename_uri(CamelStore *store, const gchar *olduri, const gchar *newu
 	eolduri = em_uri_from_camel(olduri);
 	enewuri = em_uri_from_camel(newuri);
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	fc = em_filter_context_new ();
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	user = g_build_filename (data_dir, "filters.xml", NULL);
 	system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
 	rule_context_load ((RuleContext *)fc, system, user);
@@ -412,7 +404,6 @@ mail_filter_rename_uri(CamelStore *store, const gchar *olduri, const gchar *newu
 void
 mail_filter_delete_uri(CamelStore *store, const gchar *uri)
 {
-	EShellBackend *shell_backend;
 	EMFilterContext *fc;
 	const gchar *data_dir;
 	gchar *user, *system;
@@ -421,10 +412,8 @@ mail_filter_delete_uri(CamelStore *store, const gchar *uri)
 
 	euri = em_uri_from_camel(uri);
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	fc = em_filter_context_new ();
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	user = g_build_filename (data_dir, "filters.xml", NULL);
 	system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
 	rule_context_load ((RuleContext *)fc, system, user);
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 0976392..b1cfd5a 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -63,9 +63,8 @@
 #include "mail-config.h"
 #include "mail-mt.h"
 #include "mail-tools.h"
-
+#include "em-utils.h"
 #include "e-mail-local.h"
-#include "e-mail-shell-backend.h"
 
 typedef struct {
 	GConfClient *gconf;
@@ -773,13 +772,11 @@ mail_config_get_default_transport (void)
 static gchar *
 uri_to_evname (const gchar *uri, const gchar *prefix)
 {
-	EShellBackend *shell_backend;
 	const gchar *data_dir;
 	gchar *safe;
 	gchar *tmp;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 
 	safe = g_strdup (uri);
 	e_filename_make_safe (safe);
@@ -908,13 +905,10 @@ mail_config_folder_to_safe_url (CamelFolder *folder)
 gchar *
 mail_config_folder_to_cachename (CamelFolder *folder, const gchar *prefix)
 {
-	EShellBackend *shell_backend;
 	gchar *url, *basename, *filename;
 	const gchar *config_dir;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	config_dir = e_shell_backend_get_config_dir (shell_backend);
-
+	config_dir = em_utils_get_config_dir ();
 	url = mail_config_folder_to_safe_url (folder);
 	basename = g_strdup_printf ("%s%s", prefix, url);
 	filename = g_build_filename (config_dir, basename, NULL);
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index faa80b2..b3d7a1e 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -64,6 +64,7 @@
 #include "em-folder-tree-model.h"
 
 #include "em-event.h"
+#include "em-utils.h"
 
 #include "e-mail-local.h"
 #include "e-mail-store.h"
@@ -629,7 +630,6 @@ folder_to_url(CamelStore *store, const gchar *full_name)
 static void
 rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbase, CamelFolderInfo *fi)
 {
-	EShellBackend *shell_backend;
 	gchar *old, *olduri, *oldfile, *newuri, *newfile;
 	struct _folder_info *mfi;
 	struct _folder_update *up;
@@ -689,8 +689,7 @@ rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbas
 #endif
 
 	/* rename the meta-data we maintain ourselves */
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	config_dir = e_shell_backend_get_config_dir (shell_backend);
+	config_dir = em_utils_get_config_dir ();
 	olduri = folder_to_url(si->store, old);
 	e_filename_make_safe(olduri);
 	newuri = folder_to_url(si->store, fi->full_name);
diff --git a/mail/mail-mt.c b/mail/mail-mt.c
index ade31e5..c5b6eda 100644
--- a/mail/mail-mt.c
+++ b/mail/mail-mt.c
@@ -34,6 +34,7 @@
 #include <camel/camel-url.h>
 #include <camel/camel-operation.h>
 
+#include "shell/e-shell.h"
 #include "misc/e-gui-utils.h"
 #include "e-util/e-error.h"
 #include "e-util/e-icon-factory.h"
@@ -43,8 +44,6 @@
 #include "mail-session.h"
 #include "mail-mt.h"
 
-#include "e-mail-shell-backend.h"
-
 /*#define MALLOC_CHECK*/
 #define LOG_OPS
 #define LOG_LOCKS
@@ -142,9 +141,11 @@ mail_msg_new (MailMsgInfo *info)
 static void
 end_event_callback (CamelObject *o, EActivity *activity, gpointer error)
 {
+	EShell *shell;
 	EShellBackend *shell_backend;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
 
 	if (error == NULL) {
 		e_activity_complete (activity);
@@ -941,6 +942,7 @@ struct _op_status_msg {
 static void
 op_status_exec (struct _op_status_msg *m)
 {
+	EShell *shell;
 	EShellBackend *shell_backend;
 	MailMsg *msg;
 	MailMsgPrivate *data;
@@ -949,7 +951,8 @@ op_status_exec (struct _op_status_msg *m)
 
 	g_return_if_fail (mail_in_main_thread ());
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
+	shell = e_shell_get_default ();
+	shell_backend = e_shell_get_backend_by_name (shell, "mail");
 
 	MAIL_MT_LOCK (mail_msg_lock);
 
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index a88a55e..1c00420 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -70,12 +70,12 @@
 #include "mail-vfolder.h"
 
 #include "e-mail-local.h"
-#include "e-mail-shell-backend.h"
 
 #define w(x)
 #define d(x)
 
-extern const gchar *x_mailer;
+/* XXX Make this a preprocessor definition. */
+const gchar *x_mailer = "Evolution " VERSION SUB_VERSION " " VERSION_COMMENT;
 
 /* used for both just filtering a folder + uid's, and for filtering a whole folder */
 /* used both for fetching mail, and for filtering mail */
@@ -247,19 +247,16 @@ static gchar *
 uid_cachename_hack (CamelStore *store)
 {
 	CamelURL *url = CAMEL_SERVICE (store)->url;
-	EShellBackend *shell_backend;
 	gchar *encoded_url, *filename;
 	const gchar *data_dir;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	encoded_url = g_strdup_printf ("%s%s%s %s", url->user,
 				       url->authmech ? ";auth=" : "",
 				       url->authmech ? url->authmech : "",
 				       url->host);
 	e_filename_make_safe (encoded_url);
 
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	filename = g_build_filename (data_dir, "pop", encoded_url, "uid-cache", NULL);
 	g_free (encoded_url);
 
@@ -1762,17 +1759,14 @@ empty_trash_desc (struct _empty_trash_msg *m)
 static void
 empty_trash_exec (struct _empty_trash_msg *m)
 {
-	EShellBackend *shell_backend;
 	const gchar *data_dir;
 	CamelFolder *trash;
 	gchar *uri;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	if (m->account) {
 		trash = mail_tool_get_trash (m->account->source->url, FALSE, &m->base.ex);
 	} else {
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		uri = g_strdup_printf ("mbox:%s/local", data_dir);
 		trash = mail_tool_get_trash (uri, TRUE, &m->base.ex);
 		g_free (uri);
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 2f9cd77..9cc7505 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -51,7 +51,6 @@
 #include "e-util/gconf-bridge.h"
 
 #include "e-mail-local.h"
-#include "e-mail-shell-backend.h"
 
 #define d(x)
 
diff --git a/mail/mail-session.c b/mail/mail-session.c
index 862b611..bdb5d91 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -83,7 +83,7 @@ typedef struct _MailSessionClass {
 
 } MailSessionClass;
 
-static EMailShellBackend *session_mail_shell_backend;
+static EShellBackend *session_shell_backend;
 static CamelSessionClass *ms_parent_class;
 
 static gchar *get_password(CamelSession *session, CamelService *service, const gchar *domain, const gchar *prompt, const gchar *item, guint32 flags, CamelException *ex);
@@ -503,7 +503,6 @@ session_system_beep (CamelFilterDriver *driver, gpointer user_data)
 static CamelFilterDriver *
 main_get_filter_driver (CamelSession *session, const gchar *type, CamelException *ex)
 {
-	EShellBackend *shell_backend;
 	CamelFilterDriver *driver;
 	FilterRule *rule = NULL;
 	const gchar *data_dir;
@@ -512,9 +511,8 @@ main_get_filter_driver (CamelSession *session, const gchar *type, CamelException
 	RuleContext *fc;
 
 	gconf = mail_config_get_gconf_client ();
-	shell_backend = E_SHELL_BACKEND (session_mail_shell_backend);
 
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = e_shell_backend_get_data_dir (session_shell_backend);
 	user = g_build_filename (data_dir, "filters.xml", NULL);
 	system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
 	fc = (RuleContext *) em_filter_context_new ();
@@ -708,17 +706,15 @@ mail_session_check_junk_notify (GConfClient *gconf, guint id, GConfEntry *entry,
 }
 
 void
-mail_session_init (EMailShellBackend *mail_shell_backend)
+mail_session_init (EShellBackend *shell_backend)
 {
 	EShell *shell;
-	EShellBackend *shell_backend;
 	GConfClient *gconf;
 	gboolean online;
 	const gchar *data_dir;
 
-	session_mail_shell_backend = mail_shell_backend;
+	session_shell_backend = shell_backend;
 
-	shell_backend = E_SHELL_BACKEND (mail_shell_backend);
 	shell = e_shell_backend_get_shell (shell_backend);
 	online = e_shell_get_online (shell);
 
diff --git a/mail/mail-session.h b/mail/mail-session.h
index 450404e..b127440 100644
--- a/mail/mail-session.h
+++ b/mail/mail-session.h
@@ -25,11 +25,11 @@
 
 #include <glib.h>
 #include <camel/camel-session.h>
-#include <mail/e-mail-shell-backend.h>
+#include <shell/e-shell-backend.h>
 
 G_BEGIN_DECLS
 
-void mail_session_init (EMailShellBackend *mail_shell_backend);
+void mail_session_init (EShellBackend *shell_backend);
 void mail_session_shutdown (void);
 gboolean mail_session_get_interactive (void);
 void mail_session_set_interactive (gboolean interactive);
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 67407ae..a19c3de 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -58,8 +58,6 @@
 #include "mail-tools.h"
 #include "mail-vfolder.h"
 
-#include "e-mail-shell-backend.h"
-
 /* **************************************** */
 
 CamelFolder *
@@ -107,7 +105,6 @@ mail_tool_get_trash (const gchar *url, gint connect, CamelException *ex)
 static gchar *
 mail_tool_get_local_movemail_path (const guchar *uri, CamelException *ex)
 {
-	EShellBackend *shell_backend;
 	guchar *safe_uri, *c;
 	const gchar *data_dir;
 	gchar *path, *full;
@@ -118,8 +115,7 @@ mail_tool_get_local_movemail_path (const guchar *uri, CamelException *ex)
 		if (strchr("/:;=|%&#!*^()\\, ", *c) || !isprint((gint) *c))
 			*c = '_';
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	path = g_build_filename (data_dir, "spool", NULL);
 
 	if (g_stat(path, &st) == -1 && g_mkdir_with_parents(path, 0777) == -1) {
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 5a5f732..487eea0 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -52,7 +52,6 @@
 
 #include "e-mail-local.h"
 #include "e-mail-store.h"
-#include "e-mail-shell-backend.h"
 
 #define d(x)  /* (printf("%s:%s: ",  G_STRLOC, G_STRFUNC), (x))*/
 
@@ -533,7 +532,6 @@ done:
 void
 mail_vfolder_delete_uri(CamelStore *store, const gchar *curi)
 {
-	EShellBackend *shell_backend;
 	FilterRule *rule;
 	const gchar *source;
 	CamelVeeFolder *vf;
@@ -550,8 +548,6 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi)
 
 	g_return_if_fail (mail_in_main_thread());
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	changed = g_string_new ("");
 
 	LOCK();
@@ -612,7 +608,7 @@ done:
 		dialog = e_error_new(NULL, "mail:vfolder-updated", changed->str, uri, NULL);
 		em_utils_show_info_silent (dialog);
 
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save ((RuleContext *) context, user);
 		g_free (user);
@@ -627,7 +623,6 @@ done:
 void
 mail_vfolder_rename_uri(CamelStore *store, const gchar *cfrom, const gchar *cto)
 {
-	EShellBackend *shell_backend;
 	FilterRule *rule;
 	const gchar *source;
 	CamelVeeFolder *vf;
@@ -641,8 +636,6 @@ mail_vfolder_rename_uri(CamelStore *store, const gchar *cfrom, const gchar *cto)
 
 	g_return_if_fail (mail_in_main_thread());
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	from = em_uri_from_camel(cfrom);
 	to = em_uri_from_camel(cto);
 
@@ -683,7 +676,7 @@ mail_vfolder_rename_uri(CamelStore *store, const gchar *cfrom, const gchar *cto)
 		gchar *user;
 
 		d(printf("Vfolders updated from renamed folder\n"));
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save((RuleContext *)context, user);
 		g_free(user);
@@ -837,7 +830,6 @@ store_folder_created(CamelObject *o, gpointer event_data, gpointer data)
 static void
 store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
 {
-	EShellBackend *shell_backend;
 	CamelStore *store = (CamelStore *)o;
 	CamelFolderInfo *info = event_data;
 	FilterRule *rule;
@@ -846,8 +838,6 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
 	d(printf("Folder deleted: %s\n", info->name));
 	store = store;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	/* Warning not thread safe, but might be enough */
 
 	LOCK();
@@ -864,7 +854,7 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
 		g_object_unref(rule);
 		g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context);
 
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save((RuleContext *)context, user);
 		g_free(user);
@@ -878,15 +868,12 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
 static void
 store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
 {
-	EShellBackend *shell_backend;
 	CamelRenameInfo *info = event_data;
 	FilterRule *rule;
 	gchar *user;
 
 	gpointer key, folder;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	/* This should be more-or-less thread-safe */
 
 	d(printf("Folder renamed to '%s' from '%s'\n", info->new->full_name, info->old_base));
@@ -913,7 +900,7 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
 		filter_rule_set_name(rule, info->new->full_name);
 		g_signal_connect(rule, "changed", G_CALLBACK(rule_changed), folder);
 
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save((RuleContext *)context, user);
 		g_free(user);
@@ -931,15 +918,12 @@ vfolder_load_storage(void)
 	/* lock for loading storage, it is safe to call it more than once */
 	static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
 
-	EShellBackend *shell_backend;
 	const gchar *data_dir;
 	gchar *user, *storeuri;
 	FilterRule *rule;
 	gchar *xmlfile;
 	GConfClient *gconf;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	pthread_mutex_lock (&lock);
 
 	if (vfolder_hash) {
@@ -953,7 +937,7 @@ vfolder_load_storage(void)
 	pthread_mutex_unlock (&lock);
 
 	/* first, create the vfolder store, and set it up */
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir);
 	vfolder_store = camel_session_get_store(session, storeuri, NULL);
 	if (vfolder_store == NULL) {
@@ -1010,14 +994,11 @@ vfolder_load_storage(void)
 void
 vfolder_revert(void)
 {
-	EShellBackend *shell_backend;
 	const gchar *data_dir;
 	gchar *user;
 
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	d(printf("vfolder_revert\n"));
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
+	data_dir = em_utils_get_data_dir ();
 	user = g_build_filename (data_dir, "vfolders.xml", NULL);
 	rule_context_revert((RuleContext *)context, user);
 	g_free(user);
@@ -1064,10 +1045,6 @@ vfolder_edit (EShellView *shell_view)
 static void
 edit_rule_response(GtkWidget *w, gint button, gpointer data)
 {
-	EShellBackend *shell_backend;
-
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	if (button == GTK_RESPONSE_OK) {
 		const gchar *data_dir;
 		gchar *user;
@@ -1075,7 +1052,7 @@ edit_rule_response(GtkWidget *w, gint button, gpointer data)
 		FilterRule *orig = g_object_get_data (G_OBJECT (w), "orig");
 
 		filter_rule_copy(orig, rule);
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save((RuleContext *)context, user);
 		g_free(user);
@@ -1132,10 +1109,6 @@ vfolder_edit_rule(const gchar *uri)
 static void
 new_rule_clicked(GtkWidget *w, gint button, gpointer data)
 {
-	EShellBackend *shell_backend;
-
-	shell_backend = E_SHELL_BACKEND (global_mail_shell_backend);
-
 	if (button == GTK_RESPONSE_OK) {
 		const gchar *data_dir;
 		gchar *user;
@@ -1154,7 +1127,7 @@ new_rule_clicked(GtkWidget *w, gint button, gpointer data)
 
 		g_object_ref(rule);
 		rule_context_add_rule((RuleContext *)context, rule);
-		data_dir = e_shell_backend_get_data_dir (shell_backend);
+		data_dir = em_utils_get_data_dir ();
 		user = g_build_filename (data_dir, "vfolders.xml", NULL);
 		rule_context_save((RuleContext *)context, user);
 		g_free(user);
diff --git a/modules/Makefile.am b/modules/Makefile.am
new file mode 100644
index 0000000..5030d2a
--- /dev/null
+++ b/modules/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = addressbook calendar mail
+
+-include $(top_srcdir)/git.mk
diff --git a/addressbook/gui/component/Makefile.am b/modules/addressbook/Makefile.am
similarity index 98%
rename from addressbook/gui/component/Makefile.am
rename to modules/addressbook/Makefile.am
index cd9dfc1..960df59 100644
--- a/addressbook/gui/component/Makefile.am
+++ b/modules/addressbook/Makefile.am
@@ -1,5 +1,5 @@
 if OS_WIN32
-WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail-shared.la
+WIN32_BOOTSTRAP_LIBS = $(top_builddir)/win32/libevolution-mail.la
 endif
 
 INCLUDES =							\
diff --git a/addressbook/gui/component/addressbook-config.c b/modules/addressbook/addressbook-config.c
similarity index 100%
rename from addressbook/gui/component/addressbook-config.c
rename to modules/addressbook/addressbook-config.c
diff --git a/addressbook/gui/component/addressbook-config.h b/modules/addressbook/addressbook-config.h
similarity index 100%
rename from addressbook/gui/component/addressbook-config.h
rename to modules/addressbook/addressbook-config.h
diff --git a/addressbook/gui/component/apps_evolution_addressbook.schemas.in b/modules/addressbook/apps_evolution_addressbook.schemas.in
similarity index 100%
rename from addressbook/gui/component/apps_evolution_addressbook.schemas.in
rename to modules/addressbook/apps_evolution_addressbook.schemas.in
diff --git a/addressbook/gui/component/autocompletion-config.c b/modules/addressbook/autocompletion-config.c
similarity index 100%
rename from addressbook/gui/component/autocompletion-config.c
rename to modules/addressbook/autocompletion-config.c
diff --git a/addressbook/gui/component/autocompletion-config.h b/modules/addressbook/autocompletion-config.h
similarity index 100%
rename from addressbook/gui/component/autocompletion-config.h
rename to modules/addressbook/autocompletion-config.h
diff --git a/addressbook/gui/component/e-book-shell-backend.c b/modules/addressbook/e-book-shell-backend.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-backend.c
rename to modules/addressbook/e-book-shell-backend.c
diff --git a/addressbook/gui/component/e-book-shell-backend.h b/modules/addressbook/e-book-shell-backend.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-backend.h
rename to modules/addressbook/e-book-shell-backend.h
diff --git a/addressbook/gui/component/e-book-shell-content.c b/modules/addressbook/e-book-shell-content.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-content.c
rename to modules/addressbook/e-book-shell-content.c
diff --git a/addressbook/gui/component/e-book-shell-content.h b/modules/addressbook/e-book-shell-content.h
similarity index 98%
rename from addressbook/gui/component/e-book-shell-content.h
rename to modules/addressbook/e-book-shell-content.h
index ac5ab10..da78c01 100644
--- a/addressbook/gui/component/e-book-shell-content.h
+++ b/modules/addressbook/e-book-shell-content.h
@@ -27,8 +27,8 @@
 #include "shell/e-shell-content.h"
 #include "shell/e-shell-view.h"
 
-#include "addressbook/gui/component/eab-composer-util.h"
 #include "addressbook/gui/widgets/e-addressbook-view.h"
+#include "eab-composer-util.h"
 
 /* Standard GObject macros */
 #define E_TYPE_BOOK_SHELL_CONTENT \
diff --git a/addressbook/gui/component/e-book-shell-migrate.c b/modules/addressbook/e-book-shell-migrate.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-migrate.c
rename to modules/addressbook/e-book-shell-migrate.c
diff --git a/addressbook/gui/component/e-book-shell-migrate.h b/modules/addressbook/e-book-shell-migrate.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-migrate.h
rename to modules/addressbook/e-book-shell-migrate.h
diff --git a/addressbook/gui/component/e-book-shell-sidebar.c b/modules/addressbook/e-book-shell-sidebar.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-sidebar.c
rename to modules/addressbook/e-book-shell-sidebar.c
diff --git a/addressbook/gui/component/e-book-shell-sidebar.h b/modules/addressbook/e-book-shell-sidebar.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-sidebar.h
rename to modules/addressbook/e-book-shell-sidebar.h
diff --git a/addressbook/gui/component/e-book-shell-view-actions.c b/modules/addressbook/e-book-shell-view-actions.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view-actions.c
rename to modules/addressbook/e-book-shell-view-actions.c
diff --git a/addressbook/gui/component/e-book-shell-view-actions.h b/modules/addressbook/e-book-shell-view-actions.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view-actions.h
rename to modules/addressbook/e-book-shell-view-actions.h
diff --git a/addressbook/gui/component/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view-private.c
rename to modules/addressbook/e-book-shell-view-private.c
diff --git a/addressbook/gui/component/e-book-shell-view-private.h b/modules/addressbook/e-book-shell-view-private.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view-private.h
rename to modules/addressbook/e-book-shell-view-private.h
diff --git a/addressbook/gui/component/e-book-shell-view.c b/modules/addressbook/e-book-shell-view.c
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view.c
rename to modules/addressbook/e-book-shell-view.c
diff --git a/addressbook/gui/component/e-book-shell-view.h b/modules/addressbook/e-book-shell-view.h
similarity index 100%
rename from addressbook/gui/component/e-book-shell-view.h
rename to modules/addressbook/e-book-shell-view.h
diff --git a/addressbook/gui/component/eab-composer-util.c b/modules/addressbook/eab-composer-util.c
similarity index 100%
rename from addressbook/gui/component/eab-composer-util.c
rename to modules/addressbook/eab-composer-util.c
diff --git a/addressbook/gui/component/eab-composer-util.h b/modules/addressbook/eab-composer-util.h
similarity index 100%
rename from addressbook/gui/component/eab-composer-util.h
rename to modules/addressbook/eab-composer-util.h
diff --git a/addressbook/gui/component/evolution-module-addressbook.c b/modules/addressbook/evolution-module-addressbook.c
similarity index 100%
rename from addressbook/gui/component/evolution-module-addressbook.c
rename to modules/addressbook/evolution-module-addressbook.c
diff --git a/addressbook/gui/component/ldap-config.glade b/modules/addressbook/ldap-config.glade
similarity index 100%
rename from addressbook/gui/component/ldap-config.glade
rename to modules/addressbook/ldap-config.glade
diff --git a/addressbook/gui/component/openldap-extract.h b/modules/addressbook/openldap-extract.h
similarity index 100%
rename from addressbook/gui/component/openldap-extract.h
rename to modules/addressbook/openldap-extract.h
diff --git a/calendar/module/Makefile.am b/modules/calendar/Makefile.am
similarity index 97%
rename from calendar/module/Makefile.am
rename to modules/calendar/Makefile.am
index 59c6f80..9c2d41d 100644
--- a/calendar/module/Makefile.am
+++ b/modules/calendar/Makefile.am
@@ -64,7 +64,7 @@ libevolution_module_calendar_la_LIBADD =		\
 	$(top_builddir)/shell/libeshell.la		\
 	$(top_builddir)/calendar/gui/libcal-gui.la	\
 	$(top_builddir)/calendar/importers/libevolution-calendar-importers.la	\
-	$(top_builddir)/mail/libevolution-module-mail.la \
+	$(top_builddir)/mail/libevolution-mail.la \
 	$(top_builddir)/addressbook/gui/contact-editor/libecontacteditor.la	\
 	$(top_builddir)/addressbook/gui/contact-list-editor/libecontactlisteditor.la \
 	$(top_builddir)/e-util/libeutil.la				\
diff --git a/calendar/module/e-cal-shell-backend.c b/modules/calendar/e-cal-shell-backend.c
similarity index 100%
rename from calendar/module/e-cal-shell-backend.c
rename to modules/calendar/e-cal-shell-backend.c
diff --git a/calendar/module/e-cal-shell-backend.h b/modules/calendar/e-cal-shell-backend.h
similarity index 100%
rename from calendar/module/e-cal-shell-backend.h
rename to modules/calendar/e-cal-shell-backend.h
diff --git a/calendar/module/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c
similarity index 100%
rename from calendar/module/e-cal-shell-content.c
rename to modules/calendar/e-cal-shell-content.c
diff --git a/calendar/module/e-cal-shell-content.h b/modules/calendar/e-cal-shell-content.h
similarity index 100%
rename from calendar/module/e-cal-shell-content.h
rename to modules/calendar/e-cal-shell-content.h
diff --git a/calendar/module/e-cal-shell-migrate.c b/modules/calendar/e-cal-shell-migrate.c
similarity index 100%
rename from calendar/module/e-cal-shell-migrate.c
rename to modules/calendar/e-cal-shell-migrate.c
diff --git a/calendar/module/e-cal-shell-migrate.h b/modules/calendar/e-cal-shell-migrate.h
similarity index 100%
rename from calendar/module/e-cal-shell-migrate.h
rename to modules/calendar/e-cal-shell-migrate.h
diff --git a/calendar/module/e-cal-shell-settings.c b/modules/calendar/e-cal-shell-settings.c
similarity index 100%
rename from calendar/module/e-cal-shell-settings.c
rename to modules/calendar/e-cal-shell-settings.c
diff --git a/calendar/module/e-cal-shell-settings.h b/modules/calendar/e-cal-shell-settings.h
similarity index 100%
rename from calendar/module/e-cal-shell-settings.h
rename to modules/calendar/e-cal-shell-settings.h
diff --git a/calendar/module/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c
similarity index 100%
rename from calendar/module/e-cal-shell-sidebar.c
rename to modules/calendar/e-cal-shell-sidebar.c
diff --git a/calendar/module/e-cal-shell-sidebar.h b/modules/calendar/e-cal-shell-sidebar.h
similarity index 100%
rename from calendar/module/e-cal-shell-sidebar.h
rename to modules/calendar/e-cal-shell-sidebar.h
diff --git a/calendar/module/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c
similarity index 100%
rename from calendar/module/e-cal-shell-view-actions.c
rename to modules/calendar/e-cal-shell-view-actions.c
diff --git a/calendar/module/e-cal-shell-view-actions.h b/modules/calendar/e-cal-shell-view-actions.h
similarity index 100%
rename from calendar/module/e-cal-shell-view-actions.h
rename to modules/calendar/e-cal-shell-view-actions.h
diff --git a/calendar/module/e-cal-shell-view-memopad.c b/modules/calendar/e-cal-shell-view-memopad.c
similarity index 100%
rename from calendar/module/e-cal-shell-view-memopad.c
rename to modules/calendar/e-cal-shell-view-memopad.c
diff --git a/calendar/module/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c
similarity index 100%
rename from calendar/module/e-cal-shell-view-private.c
rename to modules/calendar/e-cal-shell-view-private.c
diff --git a/calendar/module/e-cal-shell-view-private.h b/modules/calendar/e-cal-shell-view-private.h
similarity index 100%
rename from calendar/module/e-cal-shell-view-private.h
rename to modules/calendar/e-cal-shell-view-private.h
diff --git a/calendar/module/e-cal-shell-view-taskpad.c b/modules/calendar/e-cal-shell-view-taskpad.c
similarity index 100%
rename from calendar/module/e-cal-shell-view-taskpad.c
rename to modules/calendar/e-cal-shell-view-taskpad.c
diff --git a/calendar/module/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c
similarity index 100%
rename from calendar/module/e-cal-shell-view.c
rename to modules/calendar/e-cal-shell-view.c
diff --git a/calendar/module/e-cal-shell-view.h b/modules/calendar/e-cal-shell-view.h
similarity index 100%
rename from calendar/module/e-cal-shell-view.h
rename to modules/calendar/e-cal-shell-view.h
diff --git a/calendar/module/e-memo-shell-backend.c b/modules/calendar/e-memo-shell-backend.c
similarity index 100%
rename from calendar/module/e-memo-shell-backend.c
rename to modules/calendar/e-memo-shell-backend.c
diff --git a/calendar/module/e-memo-shell-backend.h b/modules/calendar/e-memo-shell-backend.h
similarity index 100%
rename from calendar/module/e-memo-shell-backend.h
rename to modules/calendar/e-memo-shell-backend.h
diff --git a/calendar/module/e-memo-shell-content.c b/modules/calendar/e-memo-shell-content.c
similarity index 100%
rename from calendar/module/e-memo-shell-content.c
rename to modules/calendar/e-memo-shell-content.c
diff --git a/calendar/module/e-memo-shell-content.h b/modules/calendar/e-memo-shell-content.h
similarity index 100%
rename from calendar/module/e-memo-shell-content.h
rename to modules/calendar/e-memo-shell-content.h
diff --git a/calendar/module/e-memo-shell-migrate.c b/modules/calendar/e-memo-shell-migrate.c
similarity index 100%
rename from calendar/module/e-memo-shell-migrate.c
rename to modules/calendar/e-memo-shell-migrate.c
diff --git a/calendar/module/e-memo-shell-migrate.h b/modules/calendar/e-memo-shell-migrate.h
similarity index 100%
rename from calendar/module/e-memo-shell-migrate.h
rename to modules/calendar/e-memo-shell-migrate.h
diff --git a/calendar/module/e-memo-shell-sidebar.c b/modules/calendar/e-memo-shell-sidebar.c
similarity index 100%
rename from calendar/module/e-memo-shell-sidebar.c
rename to modules/calendar/e-memo-shell-sidebar.c
diff --git a/calendar/module/e-memo-shell-sidebar.h b/modules/calendar/e-memo-shell-sidebar.h
similarity index 100%
rename from calendar/module/e-memo-shell-sidebar.h
rename to modules/calendar/e-memo-shell-sidebar.h
diff --git a/calendar/module/e-memo-shell-view-actions.c b/modules/calendar/e-memo-shell-view-actions.c
similarity index 100%
rename from calendar/module/e-memo-shell-view-actions.c
rename to modules/calendar/e-memo-shell-view-actions.c
diff --git a/calendar/module/e-memo-shell-view-actions.h b/modules/calendar/e-memo-shell-view-actions.h
similarity index 100%
rename from calendar/module/e-memo-shell-view-actions.h
rename to modules/calendar/e-memo-shell-view-actions.h
diff --git a/calendar/module/e-memo-shell-view-private.c b/modules/calendar/e-memo-shell-view-private.c
similarity index 100%
rename from calendar/module/e-memo-shell-view-private.c
rename to modules/calendar/e-memo-shell-view-private.c
diff --git a/calendar/module/e-memo-shell-view-private.h b/modules/calendar/e-memo-shell-view-private.h
similarity index 100%
rename from calendar/module/e-memo-shell-view-private.h
rename to modules/calendar/e-memo-shell-view-private.h
diff --git a/calendar/module/e-memo-shell-view.c b/modules/calendar/e-memo-shell-view.c
similarity index 100%
rename from calendar/module/e-memo-shell-view.c
rename to modules/calendar/e-memo-shell-view.c
diff --git a/calendar/module/e-memo-shell-view.h b/modules/calendar/e-memo-shell-view.h
similarity index 100%
rename from calendar/module/e-memo-shell-view.h
rename to modules/calendar/e-memo-shell-view.h
diff --git a/calendar/module/e-task-shell-backend.c b/modules/calendar/e-task-shell-backend.c
similarity index 100%
rename from calendar/module/e-task-shell-backend.c
rename to modules/calendar/e-task-shell-backend.c
diff --git a/calendar/module/e-task-shell-backend.h b/modules/calendar/e-task-shell-backend.h
similarity index 100%
rename from calendar/module/e-task-shell-backend.h
rename to modules/calendar/e-task-shell-backend.h
diff --git a/calendar/module/e-task-shell-content.c b/modules/calendar/e-task-shell-content.c
similarity index 100%
rename from calendar/module/e-task-shell-content.c
rename to modules/calendar/e-task-shell-content.c
diff --git a/calendar/module/e-task-shell-content.h b/modules/calendar/e-task-shell-content.h
similarity index 100%
rename from calendar/module/e-task-shell-content.h
rename to modules/calendar/e-task-shell-content.h
diff --git a/calendar/module/e-task-shell-migrate.c b/modules/calendar/e-task-shell-migrate.c
similarity index 100%
rename from calendar/module/e-task-shell-migrate.c
rename to modules/calendar/e-task-shell-migrate.c
diff --git a/calendar/module/e-task-shell-migrate.h b/modules/calendar/e-task-shell-migrate.h
similarity index 100%
rename from calendar/module/e-task-shell-migrate.h
rename to modules/calendar/e-task-shell-migrate.h
diff --git a/calendar/module/e-task-shell-sidebar.c b/modules/calendar/e-task-shell-sidebar.c
similarity index 100%
rename from calendar/module/e-task-shell-sidebar.c
rename to modules/calendar/e-task-shell-sidebar.c
diff --git a/calendar/module/e-task-shell-sidebar.h b/modules/calendar/e-task-shell-sidebar.h
similarity index 100%
rename from calendar/module/e-task-shell-sidebar.h
rename to modules/calendar/e-task-shell-sidebar.h
diff --git a/calendar/module/e-task-shell-view-actions.c b/modules/calendar/e-task-shell-view-actions.c
similarity index 100%
rename from calendar/module/e-task-shell-view-actions.c
rename to modules/calendar/e-task-shell-view-actions.c
diff --git a/calendar/module/e-task-shell-view-actions.h b/modules/calendar/e-task-shell-view-actions.h
similarity index 100%
rename from calendar/module/e-task-shell-view-actions.h
rename to modules/calendar/e-task-shell-view-actions.h
diff --git a/calendar/module/e-task-shell-view-private.c b/modules/calendar/e-task-shell-view-private.c
similarity index 100%
rename from calendar/module/e-task-shell-view-private.c
rename to modules/calendar/e-task-shell-view-private.c
diff --git a/calendar/module/e-task-shell-view-private.h b/modules/calendar/e-task-shell-view-private.h
similarity index 100%
rename from calendar/module/e-task-shell-view-private.h
rename to modules/calendar/e-task-shell-view-private.h
diff --git a/calendar/module/e-task-shell-view.c b/modules/calendar/e-task-shell-view.c
similarity index 100%
rename from calendar/module/e-task-shell-view.c
rename to modules/calendar/e-task-shell-view.c
diff --git a/calendar/module/e-task-shell-view.h b/modules/calendar/e-task-shell-view.h
similarity index 100%
rename from calendar/module/e-task-shell-view.h
rename to modules/calendar/e-task-shell-view.h
diff --git a/calendar/module/evolution-module-calendar.c b/modules/calendar/evolution-module-calendar.c
similarity index 100%
rename from calendar/module/evolution-module-calendar.c
rename to modules/calendar/evolution-module-calendar.c
diff --git a/modules/mail/Makefile.am b/modules/mail/Makefile.am
new file mode 100644
index 0000000..ab73a5d
--- /dev/null
+++ b/modules/mail/Makefile.am
@@ -0,0 +1,56 @@
+INCLUDES =								\
+	-I$(top_srcdir)							\
+	-I$(top_srcdir)/mail						\
+	-I$(top_srcdir)/widgets						\
+	$(EVOLUTION_MAIL_CFLAGS)					\
+	-DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\"			\
+	-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"				\
+	-DEVOLUTION_PRIVDATADIR=\""$(privdatadir)"\"			\
+	-DG_LOG_DOMAIN=\"evolution-module-mail\"
+
+module_LTLIBRARIES = libevolution-module-mail.la
+
+libevolution_module_mail_la_SOURCES =					\
+	evolution-module-mail.c						\
+	e-attachment-handler-mail.c					\
+	e-attachment-handler-mail.h					\
+	e-mail-shell-backend.c						\
+	e-mail-shell-backend.h						\
+	e-mail-shell-content.c						\
+	e-mail-shell-content.h						\
+	e-mail-shell-migrate.c						\
+	e-mail-shell-migrate.h						\
+	e-mail-shell-settings.c						\
+	e-mail-shell-settings.h						\
+	e-mail-shell-sidebar.c						\
+	e-mail-shell-sidebar.h						\
+	e-mail-shell-view.c						\
+	e-mail-shell-view.h						\
+	e-mail-shell-view-actions.c					\
+	e-mail-shell-view-actions.h					\
+	e-mail-shell-view-private.c					\
+	e-mail-shell-view-private.h					\
+	em-account-editor.c						\
+	em-account-editor.h						\
+	em-account-prefs.c						\
+	em-account-prefs.h						\
+	em-composer-prefs.c						\
+	em-composer-prefs.h						\
+	em-mailer-prefs.c						\
+	em-mailer-prefs.h						\
+	em-network-prefs.c						\
+	em-network-prefs.h
+
+libevolution_module_mail_la_LIBADD =					\
+	$(top_builddir)/e-util/libeutil.la				\
+	$(top_builddir)/shell/libeshell.la				\
+	$(top_builddir)/composer/libcomposer.la				\
+	$(top_builddir)/widgets/table/libetable.la			\
+	$(top_builddir)/widgets/text/libetext.la			\
+	$(top_builddir)/widgets/misc/libemiscwidgets.la			\
+	$(top_builddir)/mail/importers/libevolution-mail-importers.la
+
+libevolution_module_mail_la_LDFLAGS =					\
+	-avoid-version -module $(NO_UNDEFINED)
+
+-include $(top_srcdir)/git.mk
diff --git a/mail/e-attachment-handler-mail.c b/modules/mail/e-attachment-handler-mail.c
similarity index 100%
rename from mail/e-attachment-handler-mail.c
rename to modules/mail/e-attachment-handler-mail.c
diff --git a/mail/e-attachment-handler-mail.h b/modules/mail/e-attachment-handler-mail.h
similarity index 100%
rename from mail/e-attachment-handler-mail.h
rename to modules/mail/e-attachment-handler-mail.h
diff --git a/mail/e-mail-shell-backend.c b/modules/mail/e-mail-shell-backend.c
similarity index 95%
rename from mail/e-mail-shell-backend.c
rename to modules/mail/e-mail-shell-backend.c
index 906312c..3dcb7b1 100644
--- a/mail/e-mail-shell-backend.c
+++ b/modules/mail/e-mail-shell-backend.c
@@ -45,6 +45,7 @@
 #include "e-mail-browser.h"
 #include "e-mail-reader.h"
 #include "e-mail-store.h"
+#include "em-account-editor.h"
 #include "em-account-prefs.h"
 #include "em-composer-prefs.h"
 #include "em-composer-utils.h"
@@ -75,9 +76,6 @@ struct _EMailShellBackendPrivate {
 	guint mail_sync_timeout_source_id;
 };
 
-/* XXX Make this a preprocessor definition. */
-const gchar *x_mailer = "Evolution " VERSION SUB_VERSION " " VERSION_COMMENT;
-
 static gpointer parent_class;
 static GType mail_shell_backend_type;
 
@@ -88,6 +86,30 @@ EMailShellBackend *global_mail_shell_backend = NULL;
 
 extern gint camel_application_is_exiting;
 
+static gboolean
+mail_shell_backend_run_account_druid (GtkWindow *parent)
+{
+	EAccountList *account_list;
+	EMAccountEditor *account_editor;
+
+	account_editor = em_account_editor_new (
+		NULL, EMAE_DRUID,
+		"org.gnome.evolution.mail.config.accountDruid");
+	if (GTK_IS_WINDOW (parent))
+		gtk_window_set_transient_for (
+			GTK_WINDOW (account_editor->editor), parent);
+	g_object_weak_ref (
+		G_OBJECT (account_editor->editor),
+		(GWeakNotify) gtk_main_quit, NULL);
+	gtk_widget_show (account_editor->editor);
+	gtk_grab_add (account_editor->editor);
+	gtk_main ();
+
+	account_list = e_get_account_list ();
+
+	return (e_list_length ((EList *) account_list) > 0);
+}
+
 static void
 mail_shell_backend_init_hooks (void)
 {
@@ -163,7 +185,6 @@ static void
 action_mail_message_new_cb (GtkAction *action,
                             EShellWindow *shell_window)
 {
-	GtkWindow *window = GTK_WINDOW (shell_window);
 	EMailShellSidebar *mail_shell_sidebar;
 	EShellSidebar *shell_sidebar;
 	EShellView *shell_view;
@@ -171,7 +192,7 @@ action_mail_message_new_cb (GtkAction *action,
 	const gchar *view_name;
 	gchar *uri = NULL;
 
-	if (!em_utils_check_user_can_send_mail (window))
+	if (!em_utils_check_user_can_send_mail ())
 		return;
 
 	/* Take care not to unnecessarily load the mail shell view. */
@@ -312,7 +333,7 @@ mail_shell_backend_handle_email_uri_cb (gchar *folder_uri,
                                         CamelFolder *folder,
                                         gpointer user_data)
 {
-	EMailShellBackend *mail_shell_backend = user_data;
+	EShellBackend *shell_backend = user_data;
 	CamelURL *url = user_data;
 	const gchar *forward;
 	const gchar *reply;
@@ -358,7 +379,7 @@ mail_shell_backend_handle_email_uri_cb (gchar *folder_uri,
 		GtkWidget *browser;
 
 		/* FIXME Should pass in the shell module. */
-		browser = e_mail_browser_new (mail_shell_backend);
+		browser = e_mail_browser_new (shell_backend);
 		e_mail_reader_set_folder (
 			E_MAIL_READER (browser), folder, folder_uri);
 		e_mail_reader_set_message (
@@ -378,7 +399,7 @@ mail_shell_backend_handle_uri_cb (EShell *shell,
 	gboolean handled = TRUE;
 
 	if (g_str_has_prefix (uri, "mailto:";)) {
-		if (em_utils_check_user_can_send_mail (NULL))
+		if (em_utils_check_user_can_send_mail ())
 			em_utils_compose_new_message_with_mailto (uri, NULL);
 
 	} else if (g_str_has_prefix (uri, "email:")) {
@@ -579,7 +600,7 @@ mail_shell_backend_constructed (GObject *object)
 	shell = e_shell_backend_get_shell (shell_backend);
 
 	/* This also initializes Camel, so it needs to happen early. */
-	mail_session_init (E_MAIL_SHELL_BACKEND (shell_backend));
+	mail_session_init (shell_backend);
 
 	mail_shell_backend_init_hooks ();
 	mail_shell_backend_init_importers ();
diff --git a/mail/e-mail-shell-backend.h b/modules/mail/e-mail-shell-backend.h
similarity index 100%
rename from mail/e-mail-shell-backend.h
rename to modules/mail/e-mail-shell-backend.h
diff --git a/mail/e-mail-shell-content.c b/modules/mail/e-mail-shell-content.c
similarity index 100%
rename from mail/e-mail-shell-content.c
rename to modules/mail/e-mail-shell-content.c
diff --git a/mail/e-mail-shell-content.h b/modules/mail/e-mail-shell-content.h
similarity index 100%
rename from mail/e-mail-shell-content.h
rename to modules/mail/e-mail-shell-content.h
diff --git a/mail/e-mail-shell-migrate.c b/modules/mail/e-mail-shell-migrate.c
similarity index 100%
rename from mail/e-mail-shell-migrate.c
rename to modules/mail/e-mail-shell-migrate.c
diff --git a/mail/e-mail-shell-migrate.h b/modules/mail/e-mail-shell-migrate.h
similarity index 100%
rename from mail/e-mail-shell-migrate.h
rename to modules/mail/e-mail-shell-migrate.h
diff --git a/mail/e-mail-shell-settings.c b/modules/mail/e-mail-shell-settings.c
similarity index 100%
rename from mail/e-mail-shell-settings.c
rename to modules/mail/e-mail-shell-settings.c
diff --git a/mail/e-mail-shell-settings.h b/modules/mail/e-mail-shell-settings.h
similarity index 100%
rename from mail/e-mail-shell-settings.h
rename to modules/mail/e-mail-shell-settings.h
diff --git a/mail/e-mail-shell-sidebar.c b/modules/mail/e-mail-shell-sidebar.c
similarity index 100%
rename from mail/e-mail-shell-sidebar.c
rename to modules/mail/e-mail-shell-sidebar.c
diff --git a/mail/e-mail-shell-sidebar.h b/modules/mail/e-mail-shell-sidebar.h
similarity index 100%
rename from mail/e-mail-shell-sidebar.h
rename to modules/mail/e-mail-shell-sidebar.h
diff --git a/mail/e-mail-shell-view-actions.c b/modules/mail/e-mail-shell-view-actions.c
similarity index 100%
rename from mail/e-mail-shell-view-actions.c
rename to modules/mail/e-mail-shell-view-actions.c
diff --git a/mail/e-mail-shell-view-actions.h b/modules/mail/e-mail-shell-view-actions.h
similarity index 100%
rename from mail/e-mail-shell-view-actions.h
rename to modules/mail/e-mail-shell-view-actions.h
diff --git a/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
similarity index 100%
rename from mail/e-mail-shell-view-private.c
rename to modules/mail/e-mail-shell-view-private.c
diff --git a/mail/e-mail-shell-view-private.h b/modules/mail/e-mail-shell-view-private.h
similarity index 100%
rename from mail/e-mail-shell-view-private.h
rename to modules/mail/e-mail-shell-view-private.h
diff --git a/mail/e-mail-shell-view.c b/modules/mail/e-mail-shell-view.c
similarity index 100%
rename from mail/e-mail-shell-view.c
rename to modules/mail/e-mail-shell-view.c
diff --git a/mail/e-mail-shell-view.h b/modules/mail/e-mail-shell-view.h
similarity index 100%
rename from mail/e-mail-shell-view.h
rename to modules/mail/e-mail-shell-view.h
diff --git a/mail/em-account-editor.c b/modules/mail/em-account-editor.c
similarity index 99%
rename from mail/em-account-editor.c
rename to modules/mail/em-account-editor.c
index 4ae9295..188a2d4 100644
--- a/mail/em-account-editor.c
+++ b/modules/mail/em-account-editor.c
@@ -51,12 +51,12 @@
 #include <libgnomeui/gnome-druid.h>
 #include <libgnomeui/gnome-druid-page-standard.h>
 
-#include <e-util/e-signature-list.h>
-
 #include "e-util/e-error.h"
 #include "e-util/e-account-utils.h"
+#include "e-util/e-signature-list.h"
 #include "e-util/e-signature-utils.h"
 #include "e-util/e-util-private.h"
+#include "misc/e-signature-editor.h"
 
 #include "e-mail-local.h"
 #include "em-config.h"
@@ -64,7 +64,6 @@
 #include "em-account-editor.h"
 #include "mail-session.h"
 #include "mail-send-recv.h"
-#include "e-signature-editor.h"
 #include "em-utils.h"
 #include "em-composer-prefs.h"
 #include "mail-config.h"
diff --git a/mail/em-account-editor.h b/modules/mail/em-account-editor.h
similarity index 100%
rename from mail/em-account-editor.h
rename to modules/mail/em-account-editor.h
diff --git a/mail/em-account-prefs.c b/modules/mail/em-account-prefs.c
similarity index 100%
rename from mail/em-account-prefs.c
rename to modules/mail/em-account-prefs.c
diff --git a/mail/em-account-prefs.h b/modules/mail/em-account-prefs.h
similarity index 100%
rename from mail/em-account-prefs.h
rename to modules/mail/em-account-prefs.h
diff --git a/mail/em-composer-prefs.c b/modules/mail/em-composer-prefs.c
similarity index 99%
rename from mail/em-composer-prefs.c
rename to modules/mail/em-composer-prefs.c
index d87bb37..18dae56 100644
--- a/mail/em-composer-prefs.c
+++ b/modules/mail/em-composer-prefs.c
@@ -48,13 +48,13 @@
 #include <editor/gtkhtml-spell-language.h>
 
 #include "misc/e-charset-picker.h"
+#include "misc/e-signature-editor.h"
 #include "misc/e-signature-manager.h"
 #include "misc/e-signature-preview.h"
 #include "e-util/e-error.h"
 #include "e-util/e-util-private.h"
 
 #include "mail-config.h"
-#include "e-signature-editor.h"
 #include "em-config.h"
 
 static gpointer parent_class;
diff --git a/mail/em-composer-prefs.h b/modules/mail/em-composer-prefs.h
similarity index 100%
rename from mail/em-composer-prefs.h
rename to modules/mail/em-composer-prefs.h
diff --git a/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c
similarity index 100%
rename from mail/em-mailer-prefs.c
rename to modules/mail/em-mailer-prefs.c
diff --git a/mail/em-mailer-prefs.h b/modules/mail/em-mailer-prefs.h
similarity index 100%
rename from mail/em-mailer-prefs.h
rename to modules/mail/em-mailer-prefs.h
diff --git a/mail/em-network-prefs.c b/modules/mail/em-network-prefs.c
similarity index 100%
rename from mail/em-network-prefs.c
rename to modules/mail/em-network-prefs.c
diff --git a/mail/em-network-prefs.h b/modules/mail/em-network-prefs.h
similarity index 100%
rename from mail/em-network-prefs.h
rename to modules/mail/em-network-prefs.h
diff --git a/mail/evolution-module-mail.c b/modules/mail/evolution-module-mail.c
similarity index 100%
rename from mail/evolution-module-mail.c
rename to modules/mail/evolution-module-mail.c
diff --git a/plugins/attachment-reminder/Makefile.am b/plugins/attachment-reminder/Makefile.am
index edfe538..b3c1799 100644
--- a/plugins/attachment-reminder/Makefile.am
+++ b/plugins/attachment-reminder/Makefile.am
@@ -28,7 +28,7 @@ liborg_gnome_evolution_attachment_reminder_la_LIBADD =	\
 	$(top_builddir)/addressbook/gui/contact-list-editor/libecontactlisteditor.la	\
 	$(top_builddir)/e-util/libeutil.la		\
 	$(top_builddir)/widgets/misc/libemiscwidgets.la	\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
+	$(top_builddir)/mail/libevolution-mail.la \
 	$(EVOLUTION_MAIL_LIBS)
 
 schemadir       = $(GCONF_SCHEMA_FILE_DIR)
diff --git a/plugins/audio-inline/Makefile.am b/plugins/audio-inline/Makefile.am
index c17876d..a8f591e 100644
--- a/plugins/audio-inline/Makefile.am
+++ b/plugins/audio-inline/Makefile.am
@@ -10,9 +10,9 @@ plugin_LTLIBRARIES = liborg-gnome-audio-inline.la
 
 liborg_gnome_audio_inline_la_SOURCES = audio-inline.c
 liborg_gnome_audio_inline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-liborg_gnome_audio_inline_la_LIBADD =				\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
-	$(GSTREAMER_LIBS)					\
+liborg_gnome_audio_inline_la_LIBADD =			\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(GSTREAMER_LIBS)				\
 	$(EVOLUTION_MAIL_LIBS)
 
 EXTRA_DIST = org-gnome-audio-inline.eplug.xml
diff --git a/plugins/bogo-junk-plugin/Makefile.am b/plugins/bogo-junk-plugin/Makefile.am
index afa24a0..9d51b4d 100644
--- a/plugins/bogo-junk-plugin/Makefile.am
+++ b/plugins/bogo-junk-plugin/Makefile.am
@@ -11,9 +11,9 @@ plugin_LTLIBRARIES = liborg-gnome-bogo-junk-plugin.la
 liborg_gnome_bogo_junk_plugin_la_SOURCES = bf-junk-filter.c
 liborg_gnome_bogo_junk_plugin_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 liborg_gnome_bogo_junk_plugin_la_LIBADD =	\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
-	$(top_builddir)/e-util/libeutil.la	\
-	$(EVOLUTION_MAIL_LIBS)			\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(top_builddir)/e-util/libeutil.la		\
+	$(EVOLUTION_MAIL_LIBS)				\
 	$(GNOME_PLATFORM_LIBS)
 
 schemadir       = $(GCONF_SCHEMA_FILE_DIR)
diff --git a/plugins/external-editor/Makefile.am b/plugins/external-editor/Makefile.am
index 76234e3..b5ec612 100644
--- a/plugins/external-editor/Makefile.am
+++ b/plugins/external-editor/Makefile.am
@@ -33,7 +33,7 @@ liborg_gnome_external_editor_la_LIBADD = 			\
 	$(top_builddir)/shell/libeshell.la			\
 	$(top_builddir)/addressbook/gui/contact-editor/libecontacteditor.la 		\
 	$(top_builddir)/addressbook/gui/contact-list-editor/libecontactlisteditor.la	\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
+	$(top_builddir)/mail/libevolution-mail.la		\
 	$(EVOLUTION_MAIL_LIBS)					\
 	$(GNOME_PLATFORM_LIBS)
 
diff --git a/plugins/imap-features/Makefile.am b/plugins/imap-features/Makefile.am
index cf7dbd7..e6b6559 100644
--- a/plugins/imap-features/Makefile.am
+++ b/plugins/imap-features/Makefile.am
@@ -14,10 +14,10 @@ plugin_LTLIBRARIES = liborg-gnome-imap-features.la
 liborg_gnome_imap_features_la_SOURCES = 	\
 	imap-headers.c	
 
-liborg_gnome_imap_features_la_LIBADD=				\
-	$(top_builddir)/e-util/libeutil.la 			\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
-	$(EVOLUTION_MAIL_LIBS)					
+liborg_gnome_imap_features_la_LIBADD=			\
+	$(top_builddir)/e-util/libeutil.la 		\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(EVOLUTION_MAIL_LIBS)
 
 
 liborg_gnome_imap_features_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
diff --git a/plugins/mail-notification/Makefile.am b/plugins/mail-notification/Makefile.am
index 629697f..2055cce 100644
--- a/plugins/mail-notification/Makefile.am
+++ b/plugins/mail-notification/Makefile.am
@@ -18,10 +18,10 @@ plugin_LTLIBRARIES = liborg-gnome-mail-notification.la
 liborg_gnome_mail_notification_la_SOURCES = mail-notification.c
 liborg_gnome_mail_notification_la_LDFLAGS = 	\
 	-module -avoid-version $(NO_UNDEFINED)
-liborg_gnome_mail_notification_la_LIBADD = 			\
-	$(LIBNOTIFY_LIBS)					\
-	$(top_builddir)/e-util/libeutil.la 			\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
+liborg_gnome_mail_notification_la_LIBADD = 		\
+	$(LIBNOTIFY_LIBS)				\
+	$(top_builddir)/e-util/libeutil.la 		\
+	$(top_builddir)/mail/libevolution-mail.la	\
 	$(GNOME_PLATFORM_LIBS)
 
 if ENABLE_DBUS
diff --git a/plugins/mark-all-read/Makefile.am b/plugins/mark-all-read/Makefile.am
index f3db1bd..f1bbbcb 100644
--- a/plugins/mark-all-read/Makefile.am
+++ b/plugins/mark-all-read/Makefile.am
@@ -11,8 +11,8 @@ liborg_gnome_mark_all_read_la_SOURCES = mark-all-read.c
 liborg_gnome_mark_all_read_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 liborg_gnome_mark_all_read_la_LIBADD = 			\
 	$(top_builddir)/e-util/libeutil.la		\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
-	$(top_builddir)/shell/libeshell.la			\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(top_builddir)/shell/libeshell.la		\
 	$(EVOLUTION_MAIL_LIBS)
 
 EXTRA_DIST = org-gnome-mark-all-read.eplug.xml
diff --git a/plugins/sa-junk-plugin/Makefile.am b/plugins/sa-junk-plugin/Makefile.am
index 7d82ad3..d7ba3e7 100644
--- a/plugins/sa-junk-plugin/Makefile.am
+++ b/plugins/sa-junk-plugin/Makefile.am
@@ -12,9 +12,9 @@ liborg_gnome_sa_junk_plugin_la_SOURCES = em-junk-filter.c
 liborg_gnome_sa_junk_plugin_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 
 liborg_gnome_sa_junk_plugin_la_LIBADD =	\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
-	$(top_builddir)/e-util/libeutil.la	\
-	$(EVOLUTION_MAIL_LIBS)			\
+	$(top_builddir)/mail/libevolution-mail.la	\
+	$(top_builddir)/e-util/libeutil.la		\
+	$(EVOLUTION_MAIL_LIBS)				\
 	$(GNOME_PLATFORM_LIBS)
 
 BUILT_SOURCES = $(plugin_DATA) $(error_DATA)
diff --git a/plugins/vcard-inline/Makefile.am b/plugins/vcard-inline/Makefile.am
index f3c20d1..df143ce 100644
--- a/plugins/vcard-inline/Makefile.am
+++ b/plugins/vcard-inline/Makefile.am
@@ -11,7 +11,7 @@ plugin_LTLIBRARIES = liborg-gnome-vcard-inline.la
 liborg_gnome_vcard_inline_la_SOURCES = vcard-inline.c
 liborg_gnome_vcard_inline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
 liborg_gnome_vcard_inline_la_LIBADD =	\
-	$(top_builddir)/mail/libevolution-module-mail.la	\
+	$(top_builddir)/mail/libevolution-mail.la		\
 	$(top_builddir)/addressbook/util/libeabutil.la		\
 	$(top_builddir)/addressbook/gui/widgets/libeabwidgets.la		\
 	$(top_builddir)/addressbook/gui/merging/libeabbookmerging.la		\
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 6cc1741..b5d94bc 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,17 +2,6 @@
 # Please keep this list in alphabetic order.
 addressbook/addressbook.error.xml
 addressbook/conduit/address-conduit.c
-addressbook/gui/component/addressbook-config.c
-addressbook/gui/component/apps_evolution_addressbook.schemas.in
-addressbook/gui/component/autocompletion-config.c
-addressbook/gui/component/e-book-shell-backend.c
-addressbook/gui/component/e-book-shell-content.c
-addressbook/gui/component/e-book-shell-migrate.c
-addressbook/gui/component/e-book-shell-sidebar.c
-addressbook/gui/component/e-book-shell-view-actions.c
-addressbook/gui/component/e-book-shell-view.c
-addressbook/gui/component/eab-composer-util.c
-addressbook/gui/component/ldap-config.glade
 addressbook/gui/contact-editor/contact-editor.glade
 addressbook/gui/contact-editor/e-contact-editor-fullname.c
 addressbook/gui/contact-editor/e-contact-editor.c
@@ -24,9 +13,6 @@ addressbook/gui/contact-list-editor/e-contact-list-editor.c
 addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade
 addressbook/gui/merging/eab-contact-duplicate-detected.glade
 addressbook/gui/merging/eab-contact-merging.c
-addressbook/gui/widgets/a11y/ea-addressbook-view.c
-addressbook/gui/widgets/a11y/ea-minicard-view.c
-addressbook/gui/widgets/a11y/ea-minicard.c
 addressbook/gui/widgets/addresstypes.xml
 addressbook/gui/widgets/e-addressbook-model.c
 addressbook/gui/widgets/e-addressbook-reflow-adapter.c
@@ -37,6 +23,9 @@ addressbook/gui/widgets/e-minicard-label.c
 addressbook/gui/widgets/e-minicard-view-widget.c
 addressbook/gui/widgets/e-minicard-view.c
 addressbook/gui/widgets/e-minicard.c
+addressbook/gui/widgets/ea-addressbook-view.c
+addressbook/gui/widgets/ea-minicard-view.c
+addressbook/gui/widgets/ea-minicard.c
 addressbook/gui/widgets/eab-contact-display.c
 addressbook/gui/widgets/eab-gui-util.c
 addressbook/gui/widgets/gal-view-factory-minicard.c
@@ -136,29 +125,6 @@ calendar/gui/print.c
 calendar/gui/tasktypes.xml
 calendar/gui/weekday-picker.c
 calendar/importers/icalendar-importer.c
-calendar/module/e-cal-shell-backend.c
-calendar/module/e-cal-shell-content.c
-calendar/module/e-cal-shell-migrate.c
-calendar/module/e-cal-shell-sidebar.c
-calendar/module/e-cal-shell-view-actions.c
-calendar/module/e-cal-shell-view-memopad.c
-calendar/module/e-cal-shell-view-private.c
-calendar/module/e-cal-shell-view-taskpad.c
-calendar/module/e-cal-shell-view.c
-calendar/module/e-memo-shell-backend.c
-calendar/module/e-memo-shell-content.c
-calendar/module/e-memo-shell-migrate.c
-calendar/module/e-memo-shell-sidebar.c
-calendar/module/e-memo-shell-view-actions.c
-calendar/module/e-memo-shell-view-private.c
-calendar/module/e-memo-shell-view.c
-calendar/module/e-task-shell-backend.c
-calendar/module/e-task-shell-content.c
-calendar/module/e-task-shell-migrate.c
-calendar/module/e-task-shell-sidebar.c
-calendar/module/e-task-shell-view-actions.c
-calendar/module/e-task-shell-view-private.c
-calendar/module/e-task-shell-view.c
 calendar/zones.h
 composer/e-composer-actions.c
 composer/e-composer-autosave.c
@@ -194,7 +160,6 @@ filter/filter.error.xml
 filter/filter.glade
 filter/rule-context.c
 filter/rule-editor.c
-mail/e-attachment-handler-mail.c
 mail/e-mail-attachment-bar.c
 mail/e-mail-browser.c
 mail/e-mail-display.c
@@ -202,18 +167,11 @@ mail/e-mail-label-dialog.c
 mail/e-mail-label-list-store.c
 mail/e-mail-label-manager.c
 mail/e-mail-label-tree-view.c
+mail/e-mail-local.c
 mail/e-mail-reader-utils.c
 mail/e-mail-reader.c
 mail/e-mail-search-bar.c
-mail/e-mail-shell-backend.c
-mail/e-mail-shell-content.c
-mail/e-mail-shell-migrate.c
-mail/e-mail-shell-view-actions.c
-mail/e-mail-shell-view-private.c
-mail/e-mail-shell-view.c
-mail/em-account-editor.c
-mail/em-account-prefs.c
-mail/em-composer-prefs.c
+mail/e-mail-store.c
 mail/em-composer-utils.c
 mail/em-filter-editor.c
 mail/em-filter-folder-element.c
@@ -229,7 +187,6 @@ mail/em-format-html-display.c
 mail/em-format-html-print.c
 mail/em-format-html.c
 mail/em-junk-hook.c
-mail/em-mailer-prefs.c
 mail/em-popup.c
 mail/em-subscribe-editor.c
 mail/em-utils.c
@@ -257,6 +214,51 @@ mail/message-list.etspec
 mail/message-tag-editor.c
 mail/message-tag-followup.c
 mail/searchtypes.xml
+modules/addressbook/addressbook-config.c
+modules/addressbook/apps_evolution_addressbook.schemas.in
+modules/addressbook/autocompletion-config.c
+modules/addressbook/e-book-shell-backend.c
+modules/addressbook/e-book-shell-content.c
+modules/addressbook/e-book-shell-migrate.c
+modules/addressbook/e-book-shell-sidebar.c
+modules/addressbook/e-book-shell-view-actions.c
+modules/addressbook/e-book-shell-view.c
+modules/addressbook/eab-composer-util.c
+modules/addressbook/ldap-config.glade
+modules/calendar/e-cal-shell-backend.c
+modules/calendar/e-cal-shell-content.c
+modules/calendar/e-cal-shell-migrate.c
+modules/calendar/e-cal-shell-sidebar.c
+modules/calendar/e-cal-shell-view-actions.c
+modules/calendar/e-cal-shell-view-memopad.c
+modules/calendar/e-cal-shell-view-private.c
+modules/calendar/e-cal-shell-view-taskpad.c
+modules/calendar/e-cal-shell-view.c
+modules/calendar/e-memo-shell-backend.c
+modules/calendar/e-memo-shell-content.c
+modules/calendar/e-memo-shell-migrate.c
+modules/calendar/e-memo-shell-sidebar.c
+modules/calendar/e-memo-shell-view-actions.c
+modules/calendar/e-memo-shell-view-private.c
+modules/calendar/e-memo-shell-view.c
+modules/calendar/e-task-shell-backend.c
+modules/calendar/e-task-shell-content.c
+modules/calendar/e-task-shell-migrate.c
+modules/calendar/e-task-shell-sidebar.c
+modules/calendar/e-task-shell-view-actions.c
+modules/calendar/e-task-shell-view-private.c
+modules/calendar/e-task-shell-view.c
+modules/mail/e-attachment-handler-mail.c
+modules/mail/e-mail-shell-backend.c
+modules/mail/e-mail-shell-content.c
+modules/mail/e-mail-shell-migrate.c
+modules/mail/e-mail-shell-view-actions.c
+modules/mail/e-mail-shell-view-private.c
+modules/mail/e-mail-shell-view.c
+modules/mail/em-account-editor.c
+modules/mail/em-account-prefs.c
+modules/mail/em-composer-prefs.c
+modules/mail/em-mailer-prefs.c
 plugins/addressbook-file/org-gnome-addressbook-file.eplug.xml
 plugins/attachment-reminder/apps-evolution-attachment-reminder.schemas.in
 plugins/attachment-reminder/attachment-reminder.c
@@ -464,7 +466,6 @@ widgets/menus/gal-view-instance-save-as-dialog.glade
 widgets/menus/gal-view-instance.c
 widgets/menus/gal-view-new-dialog.c
 widgets/menus/gal-view-new-dialog.glade
-widgets/misc/a11y/ea-calendar-item.c
 widgets/misc/e-account-manager.c
 widgets/misc/e-account-tree-view.c
 widgets/misc/e-action-combo-box.c
@@ -500,13 +501,7 @@ widgets/misc/e-signature-editor.c
 widgets/misc/e-signature-manager.c
 widgets/misc/e-signature-script-dialog.c
 widgets/misc/e-url-entry.c
-widgets/table/a11y/gal-a11y-e-cell-popup.c
-widgets/table/a11y/gal-a11y-e-cell-text.c
-widgets/table/a11y/gal-a11y-e-cell-toggle.c
-widgets/table/a11y/gal-a11y-e-cell-tree.c
-widgets/table/a11y/gal-a11y-e-cell.c
-widgets/table/a11y/gal-a11y-e-table-click-to-add.c
-widgets/table/a11y/gal-a11y-e-table-column-header.c
+widgets/misc/ea-calendar-item.c
 widgets/table/e-cell-combo.c
 widgets/table/e-cell-date-edit.c
 widgets/table/e-cell-date.c
@@ -533,4 +528,11 @@ widgets/table/e-table.c
 widgets/table/e-tree-scrolled.c
 widgets/table/e-tree-selection-model.c
 widgets/table/e-tree.c
+widgets/table/gal-a11y-e-cell-popup.c
+widgets/table/gal-a11y-e-cell-text.c
+widgets/table/gal-a11y-e-cell-toggle.c
+widgets/table/gal-a11y-e-cell-tree.c
+widgets/table/gal-a11y-e-cell.c
+widgets/table/gal-a11y-e-table-click-to-add.c
+widgets/table/gal-a11y-e-table-column-header.c
 widgets/text/e-text.c
diff --git a/widgets/misc/Makefile.am b/widgets/misc/Makefile.am
index cbbd283..c7123d6 100644
--- a/widgets/misc/Makefile.am
+++ b/widgets/misc/Makefile.am
@@ -84,9 +84,9 @@ widgetsinclude_HEADERS =			\
 	e-spinner.h				\
 	e-timeout-activity.h			\
 	e-url-entry.h				\
-	a11y/ea-calendar-cell.h			\
-	a11y/ea-calendar-item.h			\
-	a11y/ea-widgets.h
+	ea-calendar-cell.h			\
+	ea-calendar-item.h			\
+	ea-widgets.h
 
 libemiscwidgets_la_SOURCES =			\
 	$(widgetsinclude_HEADERS)		\
@@ -145,9 +145,9 @@ libemiscwidgets_la_SOURCES =			\
 	e-signature-tree-view.c			\
 	e-timeout-activity.c			\
 	e-url-entry.c				\
-	a11y/ea-calendar-cell.c			\
-	a11y/ea-calendar-item.c			\
-	a11y/ea-widgets.c
+	ea-calendar-cell.c			\
+	ea-calendar-item.c			\
+	ea-widgets.c
 
 libemiscwidgets_la_LDFLAGS = $(NO_UNDEFINED)
 
diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c
index 9c9bd94..8903556 100644
--- a/widgets/misc/e-calendar-item.c
+++ b/widgets/misc/e-calendar-item.c
@@ -26,7 +26,7 @@
 #endif
 
 #include "e-calendar-item.h"
-#include "a11y/ea-widgets.h"
+#include "ea-widgets.h"
 
 #include <time.h>
 #include <string.h>
diff --git a/widgets/misc/a11y/ea-calendar-cell.c b/widgets/misc/ea-calendar-cell.c
similarity index 100%
rename from widgets/misc/a11y/ea-calendar-cell.c
rename to widgets/misc/ea-calendar-cell.c
diff --git a/widgets/misc/a11y/ea-calendar-cell.h b/widgets/misc/ea-calendar-cell.h
similarity index 100%
rename from widgets/misc/a11y/ea-calendar-cell.h
rename to widgets/misc/ea-calendar-cell.h
diff --git a/widgets/misc/a11y/ea-calendar-item.c b/widgets/misc/ea-calendar-item.c
similarity index 100%
rename from widgets/misc/a11y/ea-calendar-item.c
rename to widgets/misc/ea-calendar-item.c
diff --git a/widgets/misc/a11y/ea-calendar-item.h b/widgets/misc/ea-calendar-item.h
similarity index 100%
rename from widgets/misc/a11y/ea-calendar-item.h
rename to widgets/misc/ea-calendar-item.h
diff --git a/widgets/misc/a11y/ea-widgets.c b/widgets/misc/ea-widgets.c
similarity index 100%
rename from widgets/misc/a11y/ea-widgets.c
rename to widgets/misc/ea-widgets.c
diff --git a/widgets/misc/a11y/ea-widgets.h b/widgets/misc/ea-widgets.h
similarity index 100%
rename from widgets/misc/a11y/ea-widgets.h
rename to widgets/misc/ea-widgets.h
diff --git a/widgets/table/Makefile.am b/widgets/table/Makefile.am
index a53b249..c4fc858 100644
--- a/widgets/table/Makefile.am
+++ b/widgets/table/Makefile.am
@@ -73,22 +73,22 @@ libetable_la_SOURCES = 				\
 	e-tree-sorted.c				\
 	e-tree-table-adapter.c			\
 	e-tree.c				\
-	a11y/gal-a11y-e-cell.c			\
-	a11y/gal-a11y-e-cell-popup.c		\
-	a11y/gal-a11y-e-cell-registry.c		\
-	a11y/gal-a11y-e-cell-text.c		\
-	a11y/gal-a11y-e-cell-toggle.c		\
-	a11y/gal-a11y-e-cell-tree.c		\
-	a11y/gal-a11y-e-cell-vbox.c		\
-	a11y/gal-a11y-e-table.c			\
-	a11y/gal-a11y-e-table-click-to-add.c	\
-	a11y/gal-a11y-e-table-click-to-add-factory.c	\
-	a11y/gal-a11y-e-table-column-header.c	\
-	a11y/gal-a11y-e-table-factory.c		\
-	a11y/gal-a11y-e-table-item.c		\
-	a11y/gal-a11y-e-table-item-factory.c	\
-	a11y/gal-a11y-e-tree.c			\
-	a11y/gal-a11y-e-tree-factory.c
+	gal-a11y-e-cell.c			\
+	gal-a11y-e-cell-popup.c			\
+	gal-a11y-e-cell-registry.c		\
+	gal-a11y-e-cell-text.c			\
+	gal-a11y-e-cell-toggle.c		\
+	gal-a11y-e-cell-tree.c			\
+	gal-a11y-e-cell-vbox.c			\
+	gal-a11y-e-table.c			\
+	gal-a11y-e-table-click-to-add.c		\
+	gal-a11y-e-table-click-to-add-factory.c	\
+	gal-a11y-e-table-column-header.c	\
+	gal-a11y-e-table-factory.c		\
+	gal-a11y-e-table-item.c			\
+	gal-a11y-e-table-item-factory.c		\
+	gal-a11y-e-tree.c			\
+	gal-a11y-e-tree-factory.c
 
 libetableincludedir = $(privincludedir)/table
 
@@ -155,22 +155,22 @@ libetableinclude_HEADERS = 			\
 	e-tree-sorted.h				\
 	e-tree-table-adapter.h			\
 	e-tree.h				\
-	a11y/gal-a11y-e-cell.h			\
-	a11y/gal-a11y-e-cell-popup.h		\
-	a11y/gal-a11y-e-cell-registry.h		\
-	a11y/gal-a11y-e-cell-text.h		\
-	a11y/gal-a11y-e-cell-toggle.h		\
-	a11y/gal-a11y-e-cell-tree.h		\
-	a11y/gal-a11y-e-cell-vbox.h		\
-	a11y/gal-a11y-e-table.h			\
-	a11y/gal-a11y-e-table-click-to-add.h	\
-	a11y/gal-a11y-e-table-click-to-add-factory.h	\
-	a11y/gal-a11y-e-table-column-header.h	\
-	a11y/gal-a11y-e-table-factory.h		\
-	a11y/gal-a11y-e-table-item.h		\
-	a11y/gal-a11y-e-table-item-factory.h	\
-	a11y/gal-a11y-e-tree.h			\
-	a11y/gal-a11y-e-tree-factory.h
+	gal-a11y-e-cell.h			\
+	gal-a11y-e-cell-popup.h			\
+	gal-a11y-e-cell-registry.h		\
+	gal-a11y-e-cell-text.h			\
+	gal-a11y-e-cell-toggle.h		\
+	gal-a11y-e-cell-tree.h			\
+	gal-a11y-e-cell-vbox.h			\
+	gal-a11y-e-table.h			\
+	gal-a11y-e-table-click-to-add.h		\
+	gal-a11y-e-table-click-to-add-factory.h	\
+	gal-a11y-e-table-column-header.h	\
+	gal-a11y-e-table-factory.h		\
+	gal-a11y-e-table-item.h			\
+	gal-a11y-e-table-item-factory.h		\
+	gal-a11y-e-tree.h			\
+	gal-a11y-e-tree-factory.h
 
 libetable_la_LDFLAGS = $(NO_UNDEFINED)
 
diff --git a/widgets/table/e-cell-popup.c b/widgets/table/e-cell-popup.c
index 2689770..298f67d 100644
--- a/widgets/table/e-cell-popup.c
+++ b/widgets/table/e-cell-popup.c
@@ -33,8 +33,8 @@
 
 #include <gdk/gdkkeysyms.h>
 
-#include "a11y/gal-a11y-e-cell-popup.h"
-#include "a11y/gal-a11y-e-cell-registry.h"
+#include "gal-a11y-e-cell-popup.h"
+#include "gal-a11y-e-cell-registry.h"
 #include "e-util/e-util.h"
 
 #include "e-cell-popup.h"
diff --git a/widgets/table/e-cell-text.c b/widgets/table/e-cell-text.c
index c1d5dc8..7806502 100644
--- a/widgets/table/e-cell-text.c
+++ b/widgets/table/e-cell-text.c
@@ -45,8 +45,8 @@
 #include <libgnomecanvas/gnome-canvas.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
 
-#include "a11y/gal-a11y-e-cell-registry.h"
-#include "a11y/gal-a11y-e-cell-text.h"
+#include "gal-a11y-e-cell-registry.h"
+#include "gal-a11y-e-cell-text.h"
 #include "text/e-text.h"
 #include <glib/gi18n.h>
 #include "e-util/e-text-event-processor.h"
diff --git a/widgets/table/e-cell-toggle.c b/widgets/table/e-cell-toggle.c
index baad202..02a7425 100644
--- a/widgets/table/e-cell-toggle.c
+++ b/widgets/table/e-cell-toggle.c
@@ -28,8 +28,8 @@
 #include <gtk/gtk.h>
 #include <libgnomecanvas/gnome-canvas.h>
 
-#include "a11y/gal-a11y-e-cell-toggle.h"
-#include "a11y/gal-a11y-e-cell-registry.h"
+#include "gal-a11y-e-cell-toggle.h"
+#include "gal-a11y-e-cell-registry.h"
 #include "e-util/e-util.h"
 #include "misc/e-hsv-utils.h"
 
diff --git a/widgets/table/e-cell-tree.c b/widgets/table/e-cell-tree.c
index c3ecca9..2156aa9 100644
--- a/widgets/table/e-cell-tree.c
+++ b/widgets/table/e-cell-tree.c
@@ -38,8 +38,8 @@
 #include <gtk/gtk.h>
 #include <libgnomecanvas/gnome-canvas.h>
 
-#include "a11y/gal-a11y-e-cell-registry.h"
-#include "a11y/gal-a11y-e-cell-tree.h"
+#include "gal-a11y-e-cell-registry.h"
+#include "gal-a11y-e-cell-tree.h"
 #include "e-util/e-util.h"
 
 #include "e-cell-tree.h"
diff --git a/widgets/table/e-cell-vbox.c b/widgets/table/e-cell-vbox.c
index 30bb902..210cc84 100644
--- a/widgets/table/e-cell-vbox.c
+++ b/widgets/table/e-cell-vbox.c
@@ -29,8 +29,8 @@
 
 #include <gtk/gtk.h>
 
-#include "a11y/gal-a11y-e-cell-registry.h"
-#include "a11y/gal-a11y-e-cell-vbox.h"
+#include "gal-a11y-e-cell-registry.h"
+#include "gal-a11y-e-cell-vbox.h"
 #include "e-util/e-util.h"
 
 #include "e-cell-vbox.h"
diff --git a/widgets/table/e-table-click-to-add.c b/widgets/table/e-table-click-to-add.c
index 99a290d..d2d1534 100644
--- a/widgets/table/e-table-click-to-add.c
+++ b/widgets/table/e-table-click-to-add.c
@@ -29,7 +29,7 @@
 #include <libgnomecanvas/gnome-canvas-util.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
-#include "a11y/gal-a11y-e-table-click-to-add.h"
+#include "gal-a11y-e-table-click-to-add.h"
 #include "text/e-text.h"
 #include <glib/gi18n.h>
 #include "e-util/e-util.h"
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index c5cfa18..7448a35 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -36,8 +36,8 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
-#include "a11y/gal-a11y-e-table-item-factory.h"
-#include "a11y/gal-a11y-e-table-item.h"
+#include "gal-a11y-e-table-item-factory.h"
+#include "gal-a11y-e-table-item.h"
 #include <glib/gi18n.h>
 #include "e-util/e-util.h"
 #include "misc/e-canvas.h"
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 7f756d9..bf18fbb 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -36,7 +36,7 @@
 #include <libgnomecanvas/gnome-canvas.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
 
-#include "a11y/gal-a11y-e-table.h"
+#include "gal-a11y-e-table.h"
 #include <glib/gi18n.h>
 #include "e-util/e-util.h"
 #include "misc/e-canvas.h"
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 8124a59..dd07b2b 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -30,7 +30,7 @@
 #include <gtk/gtk.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
 
-#include "a11y/gal-a11y-e-tree.h"
+#include "gal-a11y-e-tree.h"
 #include <glib/gi18n.h>
 #include "e-util/e-util.h"
 #include "misc/e-canvas.h"
diff --git a/widgets/table/a11y/gal-a11y-e-cell-popup.c b/widgets/table/gal-a11y-e-cell-popup.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-popup.c
rename to widgets/table/gal-a11y-e-cell-popup.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-popup.h b/widgets/table/gal-a11y-e-cell-popup.h
similarity index 98%
rename from widgets/table/a11y/gal-a11y-e-cell-popup.h
rename to widgets/table/gal-a11y-e-cell-popup.h
index 76ad0ff..641d345 100644
--- a/widgets/table/a11y/gal-a11y-e-cell-popup.h
+++ b/widgets/table/gal-a11y-e-cell-popup.h
@@ -26,7 +26,7 @@
 
 #include <glib-object.h>
 #include <table/e-table-item.h>
-#include <table/a11y/gal-a11y-e-cell.h>
+#include <table/gal-a11y-e-cell.h>
 #include <atk/atkgobjectaccessible.h>
 
 #define GAL_A11Y_TYPE_E_CELL_POPUP            (gal_a11y_e_cell_popup_get_type ())
diff --git a/widgets/table/a11y/gal-a11y-e-cell-registry.c b/widgets/table/gal-a11y-e-cell-registry.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-registry.c
rename to widgets/table/gal-a11y-e-cell-registry.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-registry.h b/widgets/table/gal-a11y-e-cell-registry.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-registry.h
rename to widgets/table/gal-a11y-e-cell-registry.h
diff --git a/widgets/table/a11y/gal-a11y-e-cell-text.c b/widgets/table/gal-a11y-e-cell-text.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-text.c
rename to widgets/table/gal-a11y-e-cell-text.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-text.h b/widgets/table/gal-a11y-e-cell-text.h
similarity index 98%
rename from widgets/table/a11y/gal-a11y-e-cell-text.h
rename to widgets/table/gal-a11y-e-cell-text.h
index 1a378a4..bb400b3 100644
--- a/widgets/table/a11y/gal-a11y-e-cell-text.h
+++ b/widgets/table/gal-a11y-e-cell-text.h
@@ -26,7 +26,7 @@
 #include <glib-object.h>
 #include <table/e-table-item.h>
 #include <table/e-cell-text.h>
-#include <table/a11y/gal-a11y-e-cell.h>
+#include <table/gal-a11y-e-cell.h>
 
 #define GAL_A11Y_TYPE_E_CELL_TEXT            (gal_a11y_e_cell_text_get_type ())
 #define GAL_A11Y_E_CELL_TEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAL_A11Y_TYPE_E_CELL_TEXT, GalA11yECellText))
diff --git a/widgets/table/a11y/gal-a11y-e-cell-toggle.c b/widgets/table/gal-a11y-e-cell-toggle.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-toggle.c
rename to widgets/table/gal-a11y-e-cell-toggle.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-toggle.h b/widgets/table/gal-a11y-e-cell-toggle.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-toggle.h
rename to widgets/table/gal-a11y-e-cell-toggle.h
diff --git a/widgets/table/a11y/gal-a11y-e-cell-tree.c b/widgets/table/gal-a11y-e-cell-tree.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-tree.c
rename to widgets/table/gal-a11y-e-cell-tree.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-tree.h b/widgets/table/gal-a11y-e-cell-tree.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-tree.h
rename to widgets/table/gal-a11y-e-cell-tree.h
diff --git a/widgets/table/a11y/gal-a11y-e-cell-vbox.c b/widgets/table/gal-a11y-e-cell-vbox.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-vbox.c
rename to widgets/table/gal-a11y-e-cell-vbox.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell-vbox.h b/widgets/table/gal-a11y-e-cell-vbox.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell-vbox.h
rename to widgets/table/gal-a11y-e-cell-vbox.h
diff --git a/widgets/table/a11y/gal-a11y-e-cell.c b/widgets/table/gal-a11y-e-cell.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell.c
rename to widgets/table/gal-a11y-e-cell.c
diff --git a/widgets/table/a11y/gal-a11y-e-cell.h b/widgets/table/gal-a11y-e-cell.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-cell.h
rename to widgets/table/gal-a11y-e-cell.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-click-to-add-factory.c b/widgets/table/gal-a11y-e-table-click-to-add-factory.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-click-to-add-factory.c
rename to widgets/table/gal-a11y-e-table-click-to-add-factory.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-click-to-add-factory.h b/widgets/table/gal-a11y-e-table-click-to-add-factory.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-click-to-add-factory.h
rename to widgets/table/gal-a11y-e-table-click-to-add-factory.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-click-to-add.c b/widgets/table/gal-a11y-e-table-click-to-add.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-click-to-add.c
rename to widgets/table/gal-a11y-e-table-click-to-add.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-click-to-add.h b/widgets/table/gal-a11y-e-table-click-to-add.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-click-to-add.h
rename to widgets/table/gal-a11y-e-table-click-to-add.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-column-header.c b/widgets/table/gal-a11y-e-table-column-header.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-column-header.c
rename to widgets/table/gal-a11y-e-table-column-header.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-column-header.h b/widgets/table/gal-a11y-e-table-column-header.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-column-header.h
rename to widgets/table/gal-a11y-e-table-column-header.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-factory.c b/widgets/table/gal-a11y-e-table-factory.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-factory.c
rename to widgets/table/gal-a11y-e-table-factory.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-factory.h b/widgets/table/gal-a11y-e-table-factory.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-factory.h
rename to widgets/table/gal-a11y-e-table-factory.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-item-factory.c b/widgets/table/gal-a11y-e-table-item-factory.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-item-factory.c
rename to widgets/table/gal-a11y-e-table-item-factory.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-item-factory.h b/widgets/table/gal-a11y-e-table-item-factory.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-item-factory.h
rename to widgets/table/gal-a11y-e-table-item-factory.h
diff --git a/widgets/table/a11y/gal-a11y-e-table-item.c b/widgets/table/gal-a11y-e-table-item.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-item.c
rename to widgets/table/gal-a11y-e-table-item.c
diff --git a/widgets/table/a11y/gal-a11y-e-table-item.h b/widgets/table/gal-a11y-e-table-item.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table-item.h
rename to widgets/table/gal-a11y-e-table-item.h
diff --git a/widgets/table/a11y/gal-a11y-e-table.c b/widgets/table/gal-a11y-e-table.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table.c
rename to widgets/table/gal-a11y-e-table.c
diff --git a/widgets/table/a11y/gal-a11y-e-table.h b/widgets/table/gal-a11y-e-table.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-table.h
rename to widgets/table/gal-a11y-e-table.h
diff --git a/widgets/table/a11y/gal-a11y-e-tree-factory.c b/widgets/table/gal-a11y-e-tree-factory.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-tree-factory.c
rename to widgets/table/gal-a11y-e-tree-factory.c
diff --git a/widgets/table/a11y/gal-a11y-e-tree-factory.h b/widgets/table/gal-a11y-e-tree-factory.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-tree-factory.h
rename to widgets/table/gal-a11y-e-tree-factory.h
diff --git a/widgets/table/a11y/gal-a11y-e-tree.c b/widgets/table/gal-a11y-e-tree.c
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-tree.c
rename to widgets/table/gal-a11y-e-tree.c
diff --git a/widgets/table/a11y/gal-a11y-e-tree.h b/widgets/table/gal-a11y-e-tree.h
similarity index 100%
rename from widgets/table/a11y/gal-a11y-e-tree.h
rename to widgets/table/gal-a11y-e-tree.h
diff --git a/widgets/text/Makefile.am b/widgets/text/Makefile.am
index e035d87..70adbfe 100644
--- a/widgets/text/Makefile.am
+++ b/widgets/text/Makefile.am
@@ -14,8 +14,8 @@ libetext_la_SOURCES =				\
 	e-text.c				\
 	e-reflow.c				\
 	e-reflow-model.c			\
-	a11y/gal-a11y-e-text-factory.c		\
-	a11y/gal-a11y-e-text.c
+	gal-a11y-e-text-factory.c		\
+	gal-a11y-e-text.c
 
 libetextincludedir = $(privincludedir)/text
 
@@ -25,8 +25,8 @@ libetextinclude_HEADERS = 			\
 	e-text.h				\
 	e-reflow.h				\
 	e-reflow-model.h			\
-	a11y/gal-a11y-e-text-factory.h		\
-	a11y/gal-a11y-e-text.h
+	gal-a11y-e-text-factory.h		\
+	gal-a11y-e-text.h
 
 libetext_la_LDFLAGS = $(NO_UNDEFINED)
 
diff --git a/widgets/text/e-text.c b/widgets/text/e-text.c
index f6371aa..7c542d8 100644
--- a/widgets/text/e-text.c
+++ b/widgets/text/e-text.c
@@ -46,7 +46,7 @@
 #include <gtk/gtk.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
 
-#include "a11y/gal-a11y-e-text.h"
+#include "gal-a11y-e-text.h"
 #include "misc/e-canvas.h"
 #include "misc/e-canvas-utils.h"
 #include "e-util/e-unicode.h"
diff --git a/widgets/text/a11y/gal-a11y-e-text-factory.c b/widgets/text/gal-a11y-e-text-factory.c
similarity index 100%
rename from widgets/text/a11y/gal-a11y-e-text-factory.c
rename to widgets/text/gal-a11y-e-text-factory.c
diff --git a/widgets/text/a11y/gal-a11y-e-text-factory.h b/widgets/text/gal-a11y-e-text-factory.h
similarity index 100%
rename from widgets/text/a11y/gal-a11y-e-text-factory.h
rename to widgets/text/gal-a11y-e-text-factory.h
diff --git a/widgets/text/a11y/gal-a11y-e-text.c b/widgets/text/gal-a11y-e-text.c
similarity index 100%
rename from widgets/text/a11y/gal-a11y-e-text.c
rename to widgets/text/gal-a11y-e-text.c
diff --git a/widgets/text/a11y/gal-a11y-e-text.h b/widgets/text/gal-a11y-e-text.h
similarity index 100%
rename from widgets/text/a11y/gal-a11y-e-text.h
rename to widgets/text/gal-a11y-e-text.h
diff --git a/win32/Makefile.am b/win32/Makefile.am
index d2b2595..7720d56 100644
--- a/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -6,7 +6,6 @@ EXTRA_DIST =				\
 	libevolution-addressbook.def	\
 	libevolution-calendar.def	\
 	libevolution-mail.def		\
-	libevolution-mail-shared.def		\
 	libfilter.def
 
 if OS_WIN32
@@ -17,7 +16,6 @@ BOOTSTRAP_LIBS =			\
 	libevolution-addressbook.la	\
 	libevolution-calendar.la	\
 	libevolution-mail.la		\
-	libevolution-mail-shared.la		\
 	libfilter.la
 endif
 
@@ -58,11 +56,6 @@ libevolution-mail.la: dummy.la libevolution-mail.def
 	mkdir -p .libs
 	$(DLLTOOL) --output-lib=.libs/libevolution-mail.dll.a --dllname=libevolution-mail.dll --input-def=libevolution-mail.def
 
-libevolution-mail-shared.la: dummy.la libevolution-mail-shared.def
-	sed -e s!%DLL%!libevolution-mail-shared-0! -e s!%LIB%!libevolution-mail-shared! -e s!%PFX%!$(prefix)! <dummy.la >$@
-	mkdir -p .libs
-	$(DLLTOOL) --output-lib=.libs/libevolution-mail-shared.dll.a --dllname=libevolution-mail-shared-0.dll --input-def=libevolution-mail-shared.def
-
 libfilter.la: dummy.la libfilter.def
 	sed -e s!%DLL%!libfilter-0! -e s!%LIB%!libfilter! -e s!%PFX%!$(prefix)! <dummy.la >$@
 	mkdir -p .libs



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