diff --git a/src/plugins/imap-filter-sieve/imap-filter.c b/src/plugins/imap-filter-sieve/imap-filter.c
index 9e4152b34a6fb2ee7911214748064556f21e4404..8baadafcf4b99d2322d1280222ef313fdf5181bb 100644
--- a/src/plugins/imap-filter-sieve/imap-filter.c
+++ b/src/plugins/imap-filter-sieve/imap-filter.c
@@ -87,7 +87,11 @@ static bool imap_filter_more(struct client_command_context *cmd)
 
 	while (mailbox_search_next_nonblock(ctx->search_ctx,
 					    &mail, &tryagain)) {
-		if (!imap_filter_mail(cmd, mail))
+		bool ret;
+		T_BEGIN {
+			ret = imap_filter_mail(cmd, mail);
+		} T_END;
+		if (!ret)
 			break;
 	}
 	if (tryagain)