diff --git a/src/lib-sieve/Makefile.am b/src/lib-sieve/Makefile.am
index d9b22f56af0f4ccab6af03cdb771e955f2ee4e55..43eff4267c3e0af5372e0a13a5efe638cbba8775 100644
--- a/src/lib-sieve/Makefile.am
+++ b/src/lib-sieve/Makefile.am
@@ -1,6 +1,6 @@
 SUBDIRS = plugins
 
-noinst_LIBRARIES = libsieve.a
+noinst_LTLIBRARIES = libsieve.la
 
 AM_CPPFLAGS = \
 	-I$(dovecot_incdir) \
@@ -27,7 +27,18 @@ exts = \
 	ext-reject.c \
 	ext-envelope.c
 
-libsieve_a_SOURCES = \
+# These are not actual plugins just yet...
+plugins = \
+    ./plugins/vacation/libsieve_ext_vacation.la \
+    ./plugins/subaddress/libsieve_ext_subaddress.la \
+    ./plugins/comparator-i-ascii-numeric/libsieve_ext_comparator-i-ascii-numeric.la \
+    ./plugins/relational/libsieve_ext_relational.la \
+    ./plugins/regex/libsieve_ext_regex.la
+
+libsieve_la_DEPENDENCIES = $(plugins)
+libsieve_la_LIBADD = $(plugins)
+
+libsieve_la_SOURCES = \
 	sieve-lexer.c \
 	sieve-ast.c \
 	sieve-binary.c \
diff --git a/src/lib-sieve/plugins/Makefile.am b/src/lib-sieve/plugins/Makefile.am
index 020741cea3546c3066fd0f17811d8b52e3e8fb78..bbfa08ccdb88db539ba45ea41edb8c1c5e876c12 100644
--- a/src/lib-sieve/plugins/Makefile.am
+++ b/src/lib-sieve/plugins/Makefile.am
@@ -1 +1,2 @@
 SUBDIRS = vacation subaddress comparator-i-ascii-numeric relational regex
+
diff --git a/src/lib-sieve/plugins/comparator-i-ascii-numeric/Makefile.am b/src/lib-sieve/plugins/comparator-i-ascii-numeric/Makefile.am
index 56b6e31453a677dbd279d39c2aa7ae4a33889ac2..ca0d8abf3a9019c6a9d12787a15e8d739602decc 100644
--- a/src/lib-sieve/plugins/comparator-i-ascii-numeric/Makefile.am
+++ b/src/lib-sieve/plugins/comparator-i-ascii-numeric/Makefile.am
@@ -1,4 +1,4 @@
-noinst_LIBRARIES = lib_ext_comparator-i-ascii-numeric.a
+noinst_LTLIBRARIES = libsieve_ext_comparator-i-ascii-numeric.la
 
 AM_CPPFLAGS = \
 	-I../../ \
@@ -7,6 +7,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-storage 
 
-lib_ext_comparator_i_ascii_numeric_a_SOURCES = \
+libsieve_ext_comparator_i_ascii_numeric_la_SOURCES = \
 	ext-cmp-i-ascii-numeric.c
 
diff --git a/src/lib-sieve/plugins/regex/Makefile.am b/src/lib-sieve/plugins/regex/Makefile.am
index a60a112a875e5cdeb71abcf89f92c656277a004b..3b4444768d544eb4522a94ed8bca26bd9d03cd05 100644
--- a/src/lib-sieve/plugins/regex/Makefile.am
+++ b/src/lib-sieve/plugins/regex/Makefile.am
@@ -1,4 +1,4 @@
-noinst_LIBRARIES = lib_ext_regex.a
+noinst_LTLIBRARIES = libsieve_ext_regex.la
 
 AM_CPPFLAGS = \
 	-I../../ \
@@ -7,6 +7,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-storage 
 
-lib_ext_regex_a_SOURCES = \
+libsieve_ext_regex_la_SOURCES = \
 	ext-regex.c
 
diff --git a/src/lib-sieve/plugins/relational/Makefile.am b/src/lib-sieve/plugins/relational/Makefile.am
index 35db8634fde1dbe5d33b8c70e3974d3f2ea43e5c..a883602c26409b8501240fd25b4e0b150d0acdcb 100644
--- a/src/lib-sieve/plugins/relational/Makefile.am
+++ b/src/lib-sieve/plugins/relational/Makefile.am
@@ -1,4 +1,4 @@
-noinst_LIBRARIES = lib_ext_relational.a
+noinst_LTLIBRARIES = libsieve_ext_relational.la
 
 AM_CPPFLAGS = \
 	-I../../ \
@@ -7,6 +7,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-storage 
 
-lib_ext_relational_a_SOURCES = \
+libsieve_ext_relational_la_SOURCES = \
 	ext-relational.c
 
diff --git a/src/lib-sieve/plugins/subaddress/Makefile.am b/src/lib-sieve/plugins/subaddress/Makefile.am
index befb510b6c3e23664b0ed71519155ff248760fad..02777f61e168aeb87a47ce29e8f9104409f26fd9 100644
--- a/src/lib-sieve/plugins/subaddress/Makefile.am
+++ b/src/lib-sieve/plugins/subaddress/Makefile.am
@@ -1,4 +1,4 @@
-noinst_LIBRARIES = lib_ext_subaddress.a
+noinst_LTLIBRARIES = libsieve_ext_subaddress.la
 
 AM_CPPFLAGS = \
 	-I../../ \
@@ -7,6 +7,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-storage 
 
-lib_ext_subaddress_a_SOURCES = \
+libsieve_ext_subaddress_la_SOURCES = \
 	ext-subaddress.c
 
diff --git a/src/lib-sieve/plugins/vacation/Makefile.am b/src/lib-sieve/plugins/vacation/Makefile.am
index 8a05956089d30bd0380446ea1101a6c47daec728..3bd21db0e1eb5b4acc863871d537ecf96ff7e4ba 100644
--- a/src/lib-sieve/plugins/vacation/Makefile.am
+++ b/src/lib-sieve/plugins/vacation/Makefile.am
@@ -1,4 +1,4 @@
-noinst_LIBRARIES = lib_ext_vacation.a
+noinst_LTLIBRARIES = libsieve_ext_vacation.la
 
 AM_CPPFLAGS = \
 	-I../../ \
@@ -7,6 +7,6 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-mail \
 	-I$(dovecot_incdir)/src/lib-storage 
 
-lib_ext_vacation_a_SOURCES = \
+libsieve_ext_vacation_la_SOURCES = \
 	ext-vacation.c
 
diff --git a/src/sieve-bin/Makefile.am b/src/sieve-bin/Makefile.am
index 6f86fd3dfbd7c7010dc5ac42cd64373d4254bc7b..df92ad1828c5d231135d8d69777ef548f20d7ceb 100644
--- a/src/sieve-bin/Makefile.am
+++ b/src/sieve-bin/Makefile.am
@@ -10,22 +10,11 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-storage/index \
 	-I$(dovecot_incdir)/src/lib-storage/index/raw 
 
-plugin_dir = \
-	$(top_srcdir)/src/lib-sieve/plugins
-
-# These are not actual plugins just yet...
-plugins = \
-	$(plugin_dir)/vacation/lib_ext_vacation.a \
-	$(plugin_dir)/subaddress/lib_ext_subaddress.a \
-	$(plugin_dir)/comparator-i-ascii-numeric/lib_ext_comparator-i-ascii-numeric.a \
-	$(plugin_dir)/relational/lib_ext_relational.a \
-	$(plugin_dir)/regex/lib_ext_regex.a
-
 sievec_LDFLAGS = -export-dynamic -Wl,--start-group 
 sieve_test_LDFLAGS = -export-dynamic -Wl,--start-group
 
 libs = \
-	$(top_srcdir)/src/lib-sieve/libsieve.a \
+	$(top_srcdir)/src/lib-sieve/libsieve.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/libstorage_index.a \
@@ -38,7 +27,6 @@ libs = \
 
 ldadd = \
 	$(libs) \
-	$(plugins) \
  	$(LIBICONV) \
     $(RAND_LIBS) \
     $(MODULE_LIBS)