diff --git a/src/lib-sieve/sieve-common.h b/src/lib-sieve/sieve-common.h
index b5907d3037df5722d5a092e8cc474c87d698befc..4324377874545bfc3258ac69b1ebffaa8eb275ef 100644
--- a/src/lib-sieve/sieve-common.h
+++ b/src/lib-sieve/sieve-common.h
@@ -186,9 +186,6 @@ struct sieve_instance {
 	/* Storage class registry */
 	struct sieve_storage_class_registry *storage_reg;
 
-	/* System error handler */
-	struct sieve_error_handler *system_ehandler;
-
 	/* Plugin modules */
 	struct sieve_plugin *plugins;
 	enum sieve_env_location env_location;
diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c
index e10033a9f4be38decfdbf920b9c5b3b11014f7a8..dc3a3bf01abc3de2d3d4a2e29189b31cc17e9306 100644
--- a/src/lib-sieve/sieve-error.c
+++ b/src/lib-sieve/sieve-error.c
@@ -58,14 +58,14 @@ sieve_error_script_location(const struct sieve_script *script,
  * Initialization
  */
 
-void sieve_errors_init(struct sieve_instance *svinst)
+void sieve_errors_init(struct sieve_instance *svinst ATTR_UNUSED)
 {
-	svinst->system_ehandler = sieve_master_ehandler_create(svinst, 0);
+	/* nothing */
 }
 
-void sieve_errors_deinit(struct sieve_instance *svinst)
+void sieve_errors_deinit(struct sieve_instance *svinst ATTR_UNUSED)
 {
-	sieve_error_handler_unref(&svinst->system_ehandler);
+	/* nothing */
 }
 
 /*
@@ -164,25 +164,6 @@ void sieve_direct_logv(struct sieve_instance *svinst,
 	}
 }
 
-/*
- * System errors
- */
-
-void sieve_system_ehandler_set(struct sieve_error_handler *ehandler)
-{
-	struct sieve_instance *svinst = ehandler->svinst;
-
-	sieve_error_handler_unref(&svinst->system_ehandler);
-	svinst->system_ehandler = ehandler;
-	sieve_error_handler_ref(ehandler);
-}
-
-struct sieve_error_handler *
-sieve_system_ehandler_get(struct sieve_instance *svinst)
-{
-	return svinst->system_ehandler;
-}
-
 /*
  * User errors
  */
diff --git a/src/lib-sieve/sieve-error.h b/src/lib-sieve/sieve-error.h
index f27988fb66ac5971888d45359e2bb4a9a665a0b1..6963b82a48a07887df9a7f3cf85c5c47b167d7a8 100644
--- a/src/lib-sieve/sieve-error.h
+++ b/src/lib-sieve/sieve-error.h
@@ -33,14 +33,6 @@ struct sieve_error_params {
 	const char *location;
 };
 
-/*
- * System errors
- */
-
-void sieve_system_ehandler_set(struct sieve_error_handler *ehandler);
-struct sieve_error_handler *
-sieve_system_ehandler_get(struct sieve_instance *svinst);
-
 /*
  * Global (user+system) errors
  */
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index 6723bb4e6133a3dae9208c1ba3f4ce335f29fcc2..ebc6f78828f60535d1e174e1e3cc63d6b514eee3 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -101,7 +101,6 @@ imap_filter_sieve_get_svinst(struct imap_filter_sieve_context *sctx)
 
 	ifsuser->master_ehandler =
 		sieve_master_ehandler_create(ifsuser->svinst, 0);
-	sieve_system_ehandler_set(ifsuser->master_ehandler);
 	sieve_error_handler_accept_infolog(ifsuser->master_ehandler, TRUE);
 	sieve_error_handler_accept_debuglog(ifsuser->master_ehandler, debug);
 
diff --git a/src/plugins/imapsieve/imap-sieve.c b/src/plugins/imapsieve/imap-sieve.c
index 663e24a218cf6613b4482be9c9ecca8598146352..da8f16b7205b5a0742fa5eadda4f81bca580b59e 100644
--- a/src/plugins/imapsieve/imap-sieve.c
+++ b/src/plugins/imapsieve/imap-sieve.c
@@ -99,7 +99,6 @@ struct imap_sieve *imap_sieve_init(struct client *client)
 
 	isieve->master_ehandler =
 		sieve_master_ehandler_create(isieve->svinst, 0);
-	sieve_system_ehandler_set(isieve->master_ehandler);
 	sieve_error_handler_accept_infolog(isieve->master_ehandler, TRUE);
 	sieve_error_handler_accept_debuglog(isieve->master_ehandler, debug);
 
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index 3785812a12525a499ed88041ade06d400d7ceaa8..5db6013745f74d84ef660d15598748da48cfd646 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -967,7 +967,6 @@ lda_sieve_deliver_mail(struct mail_deliver_context *mdctx,
 	/* Initialize master error handler */
 
 	srctx.master_ehandler = sieve_master_ehandler_create(srctx.svinst, 0);
-	sieve_system_ehandler_set(srctx.master_ehandler);
 
 	sieve_error_handler_accept_infolog(srctx.master_ehandler, TRUE);
 	sieve_error_handler_accept_debuglog(srctx.master_ehandler, debug);
diff --git a/src/sieve-tools/sieve-filter.c b/src/sieve-tools/sieve-filter.c
index 37702498fa4e60f3d4e2bff737a11252cdafacc9..b7657cc53532efe11090c50564b846e900ae6996 100644
--- a/src/sieve-tools/sieve-filter.c
+++ b/src/sieve-tools/sieve-filter.c
@@ -491,7 +491,6 @@ int main(int argc, char **argv)
 
 	/* Create error handler */
 	ehandler = sieve_stderr_ehandler_create(svinst, 0);
-	sieve_system_ehandler_set(ehandler);
 	sieve_error_handler_accept_infolog(ehandler, verbose);
 	sieve_error_handler_accept_debuglog(ehandler, svinst->debug);
 
diff --git a/src/sieve-tools/sieve-test.c b/src/sieve-tools/sieve-test.c
index 3a0f85920edba8f3424974f1f5f60efdc7f2533b..1a0ea993e7779cbdd5a200a23b035e7a23f240e1 100644
--- a/src/sieve-tools/sieve-test.c
+++ b/src/sieve-tools/sieve-test.c
@@ -258,7 +258,6 @@ int main(int argc, char **argv)
 
 	/* Create error handler */
 	ehandler = sieve_stderr_ehandler_create(svinst, 0);
-	sieve_system_ehandler_set(ehandler);
 	sieve_error_handler_accept_infolog(ehandler, TRUE);
 	sieve_error_handler_accept_debuglog(ehandler, svinst->debug);
 
diff --git a/src/testsuite/testsuite-log.c b/src/testsuite/testsuite-log.c
index 2cecda65315ba48b4dc1407cc42cbc2cb102d3cd..bc7e7dfca51eee5dc07cfa15b0d3555c5f8fb26a 100644
--- a/src/testsuite/testsuite-log.c
+++ b/src/testsuite/testsuite-log.c
@@ -229,7 +229,6 @@ void testsuite_log_init(bool log_stdout)
 	sieve_error_handler_accept_infolog(testsuite_log_main_ehandler, TRUE);
 	sieve_error_handler_accept_debuglog(testsuite_log_main_ehandler, TRUE);
 
-	sieve_system_ehandler_set(testsuite_log_ehandler);
 	i_set_error_handler(testsuite_error_handler);
 	i_set_info_handler(testsuite_error_handler);
 	i_set_debug_handler(testsuite_error_handler);