diff --git a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
index 8e85a92eb7799e07991ddc734885c85a1c0ea7e8..0d0e77c5bf77cb7f91ca9703f5ac469dae83e054 100644
--- a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
@@ -316,18 +316,11 @@ cmd_filter_sieve_script_parse_value(struct client_command_context *cmd)
 	if (ctx->script_input != NULL) {
 		if ((ret=cmd_filter_sieve_script_read_stream(ctx)) == 0)
 			return FALSE;
-		if (ret < 0) {
-			imap_filter_deinit(ctx);
-			return TRUE;
-		}
-
-		imap_parser_reset(ctx->parser);
-		cmd->func = imap_filter_search;
-		return imap_filter_search(cmd);
+	} else {
+		if ((ret=cmd_filter_sieve_script_parse_value_arg(ctx)) == 0)
+			return FALSE;
 	}
 
-	if ((ret=cmd_filter_sieve_script_parse_value_arg(ctx)) == 0)
-		return FALSE;
 	if (ret < 0) {
 		/* already sent the error to client */ ;
 		imap_filter_deinit(ctx);