diff --git a/src/sieve-bin/Makefile.am b/src/sieve-bin/Makefile.am
index 587c89d7a8b85e27848c199edbc1a55369dafee6..dd6882f20e02f8417d345649c9dec48ddc957ab3 100644
--- a/src/sieve-bin/Makefile.am
+++ b/src/sieve-bin/Makefile.am
@@ -10,10 +10,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-index \
 	-I$(dovecot_incdir)/src/lib-storage \
-	-I$(dovecot_incdir)/src/lib-storage/index \
-	-I$(dovecot_incdir)/src/lib-storage/index/raw \
-	-I$(dovecot_incdir)/src/lib-storage/index/mbox \
-	-I$(dovecot_incdir)/src/lib-storage/index/maildir \
 	-I$(dovecot_incdir)/src/deliver
 
 sievec_LDFLAGS = -export-dynamic -Wl,--start-group 
@@ -25,10 +21,8 @@ libs = \
 	$(top_srcdir)/src/lib-sieve/libsieve.la \
 	$(top_srcdir)/src/lib-util/libutil.la \
 	$(dovecot_incdir)/src/lib-storage/list/libstorage_list.a \
-	$(dovecot_incdir)/src/lib-storage/index/raw/libstorage_raw.a \
-	$(dovecot_incdir)/src/lib-storage/index/maildir/libstorage_maildir.a \
-	$(dovecot_incdir)/src/lib-storage/index/mbox/libstorage_mbox.a \
-	$(dovecot_incdir)/src/lib-storage/index/libstorage_index.a \
+	$(dovecot_incdir)/src/lib-storage/register/libstorage-register.a \
+        $(STORAGE_LIBS) \
 	$(dovecot_incdir)/src/lib-storage/libstorage.a \
 	$(dovecot_incdir)/src/lib-index/libindex.a \
 	$(dovecot_incdir)/src/lib-imap/libimap.a \
diff --git a/src/sieve-bin/namespaces.c b/src/sieve-bin/namespaces.c
index 660f50a9989a511b05a3cb36624a07503c9b5ce0..996741282cbd0367808cd1f07d2bef545361ba10 100644
--- a/src/sieve-bin/namespaces.c
+++ b/src/sieve-bin/namespaces.c
@@ -9,10 +9,7 @@
 #include "str-sanitize.h"
 #include "strescape.h"
 #include "message-address.h"
-#include "raw-storage.h"
-#include "mbox-storage.h"
-#include "maildir-storage.h"
-#include "mail-namespace.h"
+#include "mail-storage.h"
 
 #include "namespaces.h"
 
@@ -24,28 +21,6 @@
 
 #define DEFAULT_ENVELOPE_SENDER "MAILER-DAEMON"
 
-/* Initialization of available mail storage and mailbox list
- * formats. 
- */
-
-extern struct mail_storage raw_storage;
-extern struct mail_storage maildir_storage;
-extern struct mail_storage mbox_storage;
-void mail_storage_register_all(void) {
-	mail_storage_class_register(&raw_storage);
-	mail_storage_class_register(&mbox_storage);
-	mail_storage_class_register(&maildir_storage);
-}
-
-extern struct mailbox_list maildir_mailbox_list;
-extern struct mailbox_list fs_mailbox_list;
-void index_mailbox_list_init(void);
-void mailbox_list_register_all(void) {
-	mailbox_list_register(&maildir_mailbox_list);
-	mailbox_list_register(&fs_mailbox_list);
-	index_mailbox_list_init();
-}
-
 void namespaces_init(void) 
 {
 	mail_storage_init();
diff --git a/src/testsuite/Makefile.am b/src/testsuite/Makefile.am
index 1cb3a99ced1bfce0083767061392bc4485b9f2fb..8634fdba6e3ce62bdc093eb035a6b12eadd89a87 100644
--- a/src/testsuite/Makefile.am
+++ b/src/testsuite/Makefile.am
@@ -7,11 +7,7 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-index \
-	-I$(dovecot_incdir)/src/lib-storage \
-	-I$(dovecot_incdir)/src/lib-storage/index \
-	-I$(dovecot_incdir)/src/lib-storage/index/raw \
-	-I$(dovecot_incdir)/src/lib-storage/index/mbox \
-	-I$(dovecot_incdir)/src/lib-storage/index/maildir 
+	-I$(dovecot_incdir)/src/lib-storage
 
 testsuite_LDFLAGS = -export-dynamic -Wl,--start-group 
 
@@ -19,10 +15,8 @@ libs = \
 	$(top_srcdir)/src/lib-sieve/libsieve.la \
 	$(top_srcdir)/src/lib-util/libutil.la \
 	$(dovecot_incdir)/src/lib-storage/list/libstorage_list.a \
-	$(dovecot_incdir)/src/lib-storage/index/raw/libstorage_raw.a \
-	$(dovecot_incdir)/src/lib-storage/index/maildir/libstorage_maildir.a \
-	$(dovecot_incdir)/src/lib-storage/index/mbox/libstorage_mbox.a \
-	$(dovecot_incdir)/src/lib-storage/index/libstorage_index.a \
+	$(dovecot_incdir)/src/lib-storage/register/libstorage-register.a \
+	$(STORAGE_LIBS) \
 	$(dovecot_incdir)/src/lib-storage/libstorage.a \
 	$(dovecot_incdir)/src/lib-index/libindex.a \
 	$(dovecot_incdir)/src/lib-imap/libimap.a \
diff --git a/src/testsuite/namespaces.c b/src/testsuite/namespaces.c
index e1565c4599ade118ddccf7203399d0ada29defee..996741282cbd0367808cd1f07d2bef545361ba10 100644
--- a/src/testsuite/namespaces.c
+++ b/src/testsuite/namespaces.c
@@ -9,10 +9,7 @@
 #include "str-sanitize.h"
 #include "strescape.h"
 #include "message-address.h"
-#include "raw-storage.h"
-#include "mbox-storage.h"
-#include "maildir-storage.h"
-#include "mail-namespace.h"
+#include "mail-storage.h"
 
 #include "namespaces.h"
 
@@ -24,26 +21,6 @@
 
 #define DEFAULT_ENVELOPE_SENDER "MAILER-DAEMON"
 
-/* Hideous .... */
-
-extern struct mail_storage raw_storage;
-extern struct mail_storage maildir_storage;
-extern struct mail_storage mbox_storage;
-void mail_storage_register_all(void) {
-	mail_storage_class_register(&raw_storage);
-	mail_storage_class_register(&mbox_storage);
-	mail_storage_class_register(&maildir_storage);
-}
-
-extern struct mailbox_list maildir_mailbox_list;
-extern struct mailbox_list fs_mailbox_list;
-void index_mailbox_list_init(void);
-void mailbox_list_register_all(void) {
-mailbox_list_register(&maildir_mailbox_list);
-mailbox_list_register(&fs_mailbox_list);
-index_mailbox_list_init();
-}
-
 void namespaces_init(void) 
 {
 	mail_storage_init();