diff --git a/src/lib-sieve/plugins/mime/tag-mime.c b/src/lib-sieve/plugins/mime/tag-mime.c
index aacd1e5f9b192b9b41668bb8d744c78f3ecd5644..4ab32931c0ab3db35e3953fdc2a5c37c52dc32d5 100644
--- a/src/lib-sieve/plugins/mime/tag-mime.c
+++ b/src/lib-sieve/plugins/mime/tag-mime.c
@@ -154,6 +154,8 @@ static bool tag_mime_option_validate
 	struct sieve_ast_argument *mime_arg;
 	struct tag_mime_data *data;
 
+	i_assert(tag != NULL);
+
 	/* Detach tag itself */
 	*arg = sieve_ast_arguments_detach(*arg,1);
 
diff --git a/src/lib-sieve/plugins/notify/cmd-denotify.c b/src/lib-sieve/plugins/notify/cmd-denotify.c
index 7da0b8e2e0a1cea50c3cf7be1eac2e68318f94ef..e37ec81f3e505599175e0d599e4234e495855028 100644
--- a/src/lib-sieve/plugins/notify/cmd-denotify.c
+++ b/src/lib-sieve/plugins/notify/cmd-denotify.c
@@ -125,6 +125,8 @@ static bool tag_match_type_validate
         (struct cmd_denotify_context_data *) cmd->data;
 	struct sieve_ast_argument *tag = *arg;
 
+	i_assert(tag != NULL);
+
 	if ( !match_type_tag.validate(valdtr, arg, cmd) )
 		return FALSE;
 
diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c
index e6aeaab001d88125bb4e3f238dd8f17652e47957..21d993e7d61642e795c6afa66913f31fb79bba2f 100644
--- a/src/lib-sieve/sieve-validator.c
+++ b/src/lib-sieve/sieve-validator.c
@@ -915,6 +915,8 @@ bool sieve_validate_tag_parameter
 	const char *arg_name, unsigned int arg_pos,
 	enum sieve_ast_argument_type req_type, bool constant)
 {
+	i_assert(tag != NULL);
+
 	if ( param == NULL ) {
 		const char *position = ( arg_pos == 0 ? "" :
 			t_strdup_printf(" %d (%s)", arg_pos, arg_name) );