diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index c6cf1d8c0d18e721f3ead9ddbd93953d32700484..067172415c6a19df446572034f4eb4a2efa9d08c 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -436,6 +436,8 @@ lda_sieve_execute_script(struct lda_sieve_run_context *srctx, bool debug = srctx->mdctx->rcpt_user->mail_debug; bool user_script, more; + *error_r = SIEVE_ERROR_NONE; + user_script = ( script == srctx->user_script ); if ( user_script ) { @@ -581,6 +583,8 @@ static int lda_sieve_execute_scripts /* End of normal script sequence */ break; } + } else if ( error != SIEVE_ERROR_NONE ) { + break; } else if ( sieve_multiscript_will_discard(mscript) && srctx->discard_script != NULL ) { /* Mail is set to be discarded, but we have a discard script. */