diff --git a/src/lib-sieve/plugins/editheader/cmd-addheader.c b/src/lib-sieve/plugins/editheader/cmd-addheader.c
index f6ec46aa8f22c6ea0f1e75c499b1b1c2bc8e8466..63ad91eb462350692e62fb9723bf61fd29add56c 100644
--- a/src/lib-sieve/plugins/editheader/cmd-addheader.c
+++ b/src/lib-sieve/plugins/editheader/cmd-addheader.c
@@ -238,6 +238,17 @@ static int cmd_addheader_operation_execute
 		(renv, address, "value", &value)) <= 0 )
 		return ret;
 
+	/*
+	 * Verify arguments
+	 */
+
+	if ( !rfc2822_header_field_name_verify
+		(str_c(field_name), str_len(field_name)) ) {
+		sieve_runtime_error(renv, NULL, "specified field name `%s' is invalid",
+			str_sanitize(str_c(field_name), 80));
+		return SIEVE_EXEC_FAILURE;
+	}
+
 	/*
 	 * Perform operation
 	 */
diff --git a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
index 7f4a687ea0d83b2db3bc1ebbe585540fe43b616e..36929b475c6a6ed53ad294723b88c87376dafe87 100644
--- a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
+++ b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
@@ -425,6 +425,17 @@ static int cmd_deleteheader_operation_execute
 		(renv, &oprnd, address, "value-patterns", &vpattern_list)) <= 0 )
 		return ret;
 	
+	/*
+	 * Verify arguments
+	 */
+
+	if ( !rfc2822_header_field_name_verify
+		(str_c(field_name), str_len(field_name)) ) {
+		sieve_runtime_error(renv, NULL, "specified field name `%s' is invalid",
+			str_sanitize(str_c(field_name), 80));
+		return SIEVE_EXEC_FAILURE;
+	}
+
 	/*
 	 * Execute command
 	 */