diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index 6de01532317b5ac12cea11d20a7c791ad333b4b5..76ed25b31e4b81b80d5df165ee81e67fb298a0ae 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -88,9 +88,10 @@ struct sieve_instance *sieve_init
 
 void sieve_deinit(struct sieve_instance **svinst)
 {
-	sieve_plugins_unload(*svinst);
 	sieve_extensions_deinit(*svinst);
 
+	sieve_plugins_unload(*svinst);
+
 	pool_unref(&(*svinst)->pool);
 
 	*svinst = NULL;