diff --git a/src/lib-sieve/sieve-error-private.h b/src/lib-sieve/sieve-error-private.h
index a7032b029b31cc631635784e6977dc718e3af9f4..e0172b294a12cf0f2e0fbd07722a79d9dfc4fafd 100644
--- a/src/lib-sieve/sieve-error-private.h
+++ b/src/lib-sieve/sieve-error-private.h
@@ -20,8 +20,6 @@ struct sieve_error_handler {
 
 	struct sieve_instance *svinst;
 
-	struct sieve_error_handler *parent;
-
 	unsigned int max_errors;
 
 	unsigned int errors;
@@ -43,10 +41,6 @@ void sieve_error_handler_init(struct sieve_error_handler *ehandler,
 			      struct sieve_instance *svinst, pool_t pool,
 			      unsigned int max_errors);
 
-void sieve_error_handler_init_from_parent(struct sieve_error_handler *ehandler,
-					  pool_t pool,
-					  struct sieve_error_handler *parent);
-
 /*
  * Direct handler calls
  */
diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c
index ccfd2ae350368a7f040c42504017f9aba8625434..7fd129e8dc8dee4cc95c96093975539d4c46d4a9 100644
--- a/src/lib-sieve/sieve-error.c
+++ b/src/lib-sieve/sieve-error.c
@@ -591,19 +591,13 @@ bool sieve_errors_more_allowed(struct sieve_error_handler *ehandler)
 void sieve_error_handler_accept_infolog(struct sieve_error_handler *ehandler,
 					bool enable)
 {
-	while (ehandler != NULL) {
-		ehandler->log_info = enable;
-		ehandler = ehandler->parent;
-	}
+	ehandler->log_info = enable;
 }
 
 void sieve_error_handler_accept_debuglog(struct sieve_error_handler *ehandler,
 					 bool enable)
 {
-	while (ehandler != NULL) {
-		ehandler->log_debug = enable;
-		ehandler = ehandler->parent;
-	}
+	ehandler->log_debug = enable;
 }
 
 /*
@@ -623,23 +617,6 @@ void sieve_error_handler_init(struct sieve_error_handler *ehandler,
 	ehandler->warnings = 0;
 }
 
-void sieve_error_handler_init_from_parent(struct sieve_error_handler *ehandler,
-					  pool_t pool,
-					  struct sieve_error_handler *parent)
-{
-	i_assert(parent != NULL);
-
-	sieve_error_handler_init(ehandler, parent->svinst, pool,
-				 parent->max_errors);
-
-	ehandler->parent = parent;
-	sieve_error_handler_ref(parent);
-
-	ehandler->master_log = parent->master_log;
-	ehandler->log_info = parent->log_info;
-	ehandler->log_debug = parent->log_debug;
-}
-
 void sieve_error_handler_ref(struct sieve_error_handler *ehandler)
 {
 	if (ehandler == NULL || ehandler->pool == NULL)
@@ -658,8 +635,6 @@ void sieve_error_handler_unref(struct sieve_error_handler **ehandler)
 	if (--(*ehandler)->refcount != 0)
         	return;
 
-	if ((*ehandler)->parent != NULL)
-		sieve_error_handler_unref(&(*ehandler)->parent);
 	if ((*ehandler)->free != NULL)
 		(*ehandler)->free(*ehandler);