diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c
index 166d530899a5356a22d99c0a23c404ed4e65d01f..65975cb179eba0f8132a758930d1c55d56e314e3 100644
--- a/src/lib-sieve/sieve-error.c
+++ b/src/lib-sieve/sieve-error.c
@@ -390,7 +390,7 @@ void sieve_vcritical
 			(svinst, svinst->system_ehandler, 0, location, fmt, args);
 	}
 
-	if ( ehandler == NULL ) return;
+	if ( ehandler == NULL || ehandler == svinst->system_ehandler ) return;
 
 	tm = localtime(&ioloop_time);