From ededac74372dd29716ee98ea596cea174dae373a Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Thu, 10 Oct 2024 21:15:10 +0200
Subject: [PATCH] Avoid the use of ` in log messages and comments

It doesn't match Dovecot convention.
---
 src/lib-managesieve/managesieve-url.c         |  4 +--
 src/lib-sieve/cmd-redirect.c                  | 10 +++----
 src/lib-sieve/ext-envelope.c                  |  2 +-
 src/lib-sieve/ext-fileinto.c                  |  6 ++--
 src/lib-sieve/ext-reject.c                    |  2 +-
 src/lib-sieve/plugins/date/ext-date-common.c  | 10 +++----
 src/lib-sieve/plugins/date/tst-date.c         |  6 ++--
 .../plugins/duplicate/tst-duplicate.c         |  4 +--
 .../plugins/editheader/cmd-addheader.c        | 18 +++++------
 .../plugins/editheader/cmd-deleteheader.c     | 26 ++++++++--------
 .../editheader/ext-editheader-common.c        |  2 +-
 src/lib-sieve/plugins/enotify/cmd-notify.c    |  2 +-
 .../plugins/enotify/mailto/ntfy-mailto.c      |  4 +--
 .../plugins/environment/tst-environment.c     |  2 +-
 src/lib-sieve/plugins/ihave/tst-ihave.c       |  4 +--
 .../imap4flags/ext-imap4flags-common.c        |  8 ++---
 src/lib-sieve/plugins/include/cmd-include.c   |  6 ++--
 .../plugins/include/ext-include-common.c      |  4 +--
 .../plugins/mailbox/tst-mailboxexists.c       | 10 +++----
 src/lib-sieve/plugins/metadata/tst-metadata.c | 14 ++++-----
 .../plugins/metadata/tst-metadataexists.c     | 16 +++++-----
 src/lib-sieve/plugins/mime/cmd-break.c        |  2 +-
 src/lib-sieve/plugins/mime/cmd-extracttext.c  |  2 +-
 src/lib-sieve/plugins/mime/tag-mime.c         |  2 +-
 src/lib-sieve/plugins/regex/mcht-regex.c      |  2 +-
 src/lib-sieve/plugins/relational/mcht-count.c |  4 +--
 .../spamvirustest/ext-spamvirustest-common.c  |  4 +--
 .../plugins/special-use/tag-specialuse.c      |  6 ++--
 .../special-use/tst-specialuse-exists.c       | 26 ++++++++--------
 src/lib-sieve/plugins/vacation/cmd-vacation.c | 22 +++++++-------
 src/lib-sieve/plugins/variables/cmd-set.c     |  2 +-
 .../ext-vnd-environment-variables.c           |  4 +--
 .../plugins/vnd.dovecot/report/cmd-report.c   | 16 +++++-----
 src/lib-sieve/sieve-address-parts.c           |  4 +--
 src/lib-sieve/sieve-address.c                 |  6 ++--
 src/lib-sieve/sieve-binary-file.c             |  4 +--
 src/lib-sieve/sieve-interpreter.c             |  8 ++---
 src/lib-sieve/sieve-match.c                   |  6 ++--
 src/lib-sieve/sieve-message.c                 |  6 ++--
 src/lib-sieve/sieve-script.c                  | 30 +++++++++----------
 src/lib-sieve/sieve-settings.c                |  2 +-
 src/lib-sieve/sieve-storage.c                 | 26 ++++++++--------
 src/lib-sieve/sieve-validator.c               |  8 ++---
 src/lib-sieve/sieve.c                         |  8 ++---
 .../storage/dict/sieve-dict-script.c          | 16 +++++-----
 .../storage/dict/sieve-dict-storage.c         |  4 +--
 .../storage/file/sieve-file-script.c          | 14 ++++-----
 .../storage/file/sieve-file-storage-active.c  |  2 +-
 .../storage/file/sieve-file-storage-save.c    |  6 ++--
 .../storage/file/sieve-file-storage.c         | 20 ++++++-------
 src/lib-sieve/storage/ldap/sieve-ldap-db.c    |  4 +--
 .../storage/ldap/sieve-ldap-script.c          | 20 ++++++-------
 .../ldap/sieve-ldap-storage-settings.c        | 20 ++++++-------
 .../storage/ldap/sieve-ldap-storage.c         |  2 +-
 src/lib-sieve/tst-exists.c                    |  2 +-
 src/lib-sieve/util/edit-mail.c                |  2 +-
 src/managesieve-login/managesieve-proxy.c     |  4 +--
 src/managesieve/cmd-deletescript.c            |  4 +--
 src/managesieve/cmd-getscript.c               | 10 +++----
 src/managesieve/cmd-havespace.c               |  2 +-
 src/managesieve/cmd-putscript.c               |  6 ++--
 src/managesieve/cmd-renamescript.c            |  6 ++--
 src/managesieve/cmd-setactive.c               | 10 +++----
 src/managesieve/managesieve-quota.c           |  4 +--
 .../doveadm-sieve/doveadm-sieve-sync.c        |  6 ++--
 .../imap-filter-sieve/cmd-filter-sieve.c      |  2 +-
 src/plugins/imap-filter-sieve/cmd-filter.c    |  2 +-
 .../imap-filter-sieve/imap-filter-sieve.c     | 18 +++++------
 src/plugins/imapsieve/imap-sieve-storage.c    | 16 +++++-----
 src/plugins/imapsieve/imap-sieve.c            | 18 +++++------
 src/plugins/lda-sieve/lda-sieve-plugin.c      | 30 +++++++++----------
 src/plugins/sieve-extprograms/cmd-execute.c   |  6 ++--
 src/plugins/sieve-extprograms/cmd-filter.c    |  6 ++--
 src/plugins/sieve-extprograms/cmd-pipe.c      |  8 ++---
 .../sieve-extprograms-common.c                | 22 +++++++-------
 src/sieve-tools/sieve-filter.c                |  6 ++--
 src/testsuite/cmd-test-binary.c               |  4 +--
 src/testsuite/cmd-test-config.c               |  6 ++--
 src/testsuite/cmd-test-imap-metadata.c        |  4 +--
 src/testsuite/cmd-test-mailbox.c              |  8 ++---
 src/testsuite/cmd-test-message.c              |  8 ++---
 src/testsuite/testsuite-mailstore.c           |  6 ++--
 src/testsuite/testsuite-message.c             |  6 ++--
 src/testsuite/testsuite-script.c              |  4 +--
 84 files changed, 352 insertions(+), 352 deletions(-)

diff --git a/src/lib-managesieve/managesieve-url.c b/src/lib-managesieve/managesieve-url.c
index d2d765861..f38b27ffc 100644
--- a/src/lib-managesieve/managesieve-url.c
+++ b/src/lib-managesieve/managesieve-url.c
@@ -140,7 +140,7 @@ managesieve_url_parse_userinfo(struct managesieve_url_parser *url_parser,
 	if (auth->enc_userinfo == NULL)
 		return 0;
 	if ((url_parser->flags & MANAGESIEVE_URL_ALLOW_USERINFO_PART) == 0) {
-		parser->error = "Sieve URL does not allow `userinfo@' part";
+		parser->error = "Sieve URL does not allow 'userinfo@' part";
 		return -1;
 	}
 
@@ -312,7 +312,7 @@ static int managesieve_url_do_parse(struct managesieve_url_parser *url_parser)
 	 */
 	if (parser->cur >= parser->end || parser->cur[0] != '/' ||
 	    (parser->cur + 1) >= parser->end || parser->cur[1] != '/') {
-		parser->error = "Sieve URL requires `//' after `sieve:'";
+		parser->error = "Sieve URL requires '//' after 'sieve:'";
 		return -1;
 	}
 	parser->cur += 2;
diff --git a/src/lib-sieve/cmd-redirect.c b/src/lib-sieve/cmd-redirect.c
index 6a3b0a46e..57a1554af 100644
--- a/src/lib-sieve/cmd-redirect.c
+++ b/src/lib-sieve/cmd-redirect.c
@@ -445,18 +445,18 @@ act_redirect_get_duplicate_id(struct act_redirect_context *ctx,
 	if (mail_get_first_header(mail, "resent-message-id", &resent_id) < 0) {
 		return sieve_result_mail_error(
 			aenv, mail,
-			"failed to read header field `resent-message-id'");
+			"failed to read header field 'resent-message-id'");
 	}
 	if (resent_id == NULL &&
 	    mail_get_first_header(mail, "resent-from", &resent_id) < 0) {
 		return sieve_result_mail_error(
 			aenv, mail,
-			"failed to read header field `resent-from'");
+			"failed to read header field 'resent-from'");
 	}
 	if (mail_get_first_header(mail, "list-id", &list_id) < 0) {
 		return sieve_result_mail_error(
 			aenv, mail,
-			"failed to read header field `list-id'");
+			"failed to read header field 'list-id'");
 	}
 
 	if ((eenv->flags & SIEVE_EXECUTE_FLAG_NO_ENVELOPE) == 0)
@@ -500,7 +500,7 @@ act_redirect_check_loop_header(const struct sieve_action_exec_env *aenv,
 	if (ret < 0) {
 		return sieve_result_mail_error(
 			aenv, mail, "failed to read header field "
-			"`x-sieve-redirected-from'");
+			"'x-sieve-redirected-from'");
 	}
 
 	if (ret == 0)
@@ -615,7 +615,7 @@ act_redirect_execute(const struct sieve_action_exec_env *aenv,
 	if (loop_detected) {
 		sieve_result_global_log(
 			aenv, "not forwarding message to <%s>: "
-			"the `x-sieve-redirected-from' header indicates a mail loop",
+			"the 'x-sieve-redirected-from' header indicates a mail loop",
 			smtp_address_encode(ctx->to_address));
 		trans->skip_redirect = TRUE;
 		return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/ext-envelope.c b/src/lib-sieve/ext-envelope.c
index 732ba58cb..9bb022ca3 100644
--- a/src/lib-sieve/ext-envelope.c
+++ b/src/lib-sieve/ext-envelope.c
@@ -428,7 +428,7 @@ sieve_envelope_address_list_next_item(struct sieve_address_list *_addrlist,
 		if (_addrlist->strlist.trace) {
 			sieve_runtime_trace(
 				_addrlist->strlist.runenv, 0,
-				"getting `%s' part from message envelope",
+				"getting '%s' part from message envelope",
 				str_sanitize(str_c(envp_item), 80));
 		}
 
diff --git a/src/lib-sieve/ext-fileinto.c b/src/lib-sieve/ext-fileinto.c
index fb6575838..9e697984c 100644
--- a/src/lib-sieve/ext-fileinto.c
+++ b/src/lib-sieve/ext-fileinto.c
@@ -126,7 +126,7 @@ cmd_fileinto_validate(struct sieve_validator *valdtr, struct sieve_command *cmd)
 		if (!sieve_mailbox_check_name(folder, &error)) {
 			sieve_command_validate_error(
 				valdtr, cmd, "fileinto command: "
-				"invalid folder name `%s' specified: %s",
+				"invalid folder name '%s' specified: %s",
 				str_sanitize(folder, 256), error);
 			return FALSE;
 		}
@@ -205,13 +205,13 @@ ext_fileinto_operation_execute(const struct sieve_runtime_env *renv,
 	if (!sieve_mailbox_check_name(str_c(folder), &error)) {
 		sieve_runtime_error(
 			renv, NULL, "fileinto command: "
-			"invalid folder name `%s' specified: %s",
+			"invalid folder name '%s' specified: %s",
 			str_c(folder), error);
 		return SIEVE_EXEC_FAILURE;
 	}
 
 	if (trace) {
-		sieve_runtime_trace(renv, 0, "store message in mailbox `%s'",
+		sieve_runtime_trace(renv, 0, "store message in mailbox '%s'",
 				    str_sanitize(str_c(folder), 80));
 	}
 
diff --git a/src/lib-sieve/ext-reject.c b/src/lib-sieve/ext-reject.c
index 649c1f2fd..9ff7c758c 100644
--- a/src/lib-sieve/ext-reject.c
+++ b/src/lib-sieve/ext-reject.c
@@ -414,7 +414,7 @@ ext_reject_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace(renv, 0, "reject action");
 
 		sieve_runtime_trace_descend(renv);
-		sieve_runtime_trace(renv, 0, "reject message with reason `%s'",
+		sieve_runtime_trace(renv, 0, "reject message with reason '%s'",
 				    str_sanitize(str_c(reason), 64));
 	}
 
diff --git a/src/lib-sieve/plugins/date/ext-date-common.c b/src/lib-sieve/plugins/date/ext-date-common.c
index 53bd17e9f..f2c2d9c87 100644
--- a/src/lib-sieve/plugins/date/ext-date-common.c
+++ b/src/lib-sieve/plugins/date/ext-date-common.c
@@ -391,11 +391,11 @@ ext_date_time_part_get(struct tm *tm, int zone_offset ATTR_UNUSED)
 static const char *
 ext_date_iso8601_part_get(struct tm *tm, int zone_offset)
 {
-	/* From RFC: `The restricted ISO 8601 format is specified by the
-	              date-time ABNF production given in [RFC3339], Section 5.6,
-	              with the added restrictions that the letters "T" and "Z"
-	              MUST be in upper case, and a time zone offset of zero MUST
-	              be represented by "Z" and not "+00:00".`
+	/* From RFC: The restricted ISO 8601 format is specified by the
+	             date-time ABNF production given in [RFC3339], Section 5.6,
+	             with the added restrictions that the letters "T" and "Z"
+	             MUST be in upper case, and a time zone offset of zero MUST
+	             be represented by "Z" and not "+00:00".
 	 */
 	if (zone_offset == 0)
 		zone_offset = INT_MAX;
diff --git a/src/lib-sieve/plugins/date/tst-date.c b/src/lib-sieve/plugins/date/tst-date.c
index abb23d612..eef43b855 100644
--- a/src/lib-sieve/plugins/date/tst-date.c
+++ b/src/lib-sieve/plugins/date/tst-date.c
@@ -284,7 +284,7 @@ tst_date_validate(struct sieve_validator *valdtr, struct sieve_command *tst)
 		if (ext_date_part_find(part) == NULL) {
 			sieve_argument_validate_warning(
 				valdtr, arg,
-				"specified date part `%s' is not known",
+				"specified date part '%s' is not known",
 				str_sanitize(part, 80));
 		}
 	}
@@ -460,7 +460,7 @@ tst_date_operation_execute(const struct sieve_runtime_env *renv,
 		if (!zone_literal) {
 			sieve_runtime_warning(
 				renv, NULL,
-				"specified :zone argument `%s' is not a valid timezone "
+				"specified :zone argument '%s' is not a valid timezone "
 				"(using local zone)",
 				str_sanitize(str_c(zone), 40));
 		}
@@ -471,7 +471,7 @@ tst_date_operation_execute(const struct sieve_runtime_env *renv,
 	if (dpart == NULL) {
 		sieve_runtime_warning(
 			renv, NULL,
-			"specified date part argument `%s' is not known",
+			"specified date part argument '%s' is not known",
 			str_sanitize(str_c(date_part), 40));
 		sieve_interpreter_set_test_result(renv->interp, FALSE);
 		return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/plugins/duplicate/tst-duplicate.c b/src/lib-sieve/plugins/duplicate/tst-duplicate.c
index 5ef54e8b7..eb29a1039 100644
--- a/src/lib-sieve/plugins/duplicate/tst-duplicate.c
+++ b/src/lib-sieve/plugins/duplicate/tst-duplicate.c
@@ -392,7 +392,7 @@ tst_duplicate_operation_execute(const struct sieve_runtime_env *renv,
 			if (ret < 0) {
 				return sieve_runtime_mail_error(
 					renv, mail, "duplicate test: "
-					"failed to read header field `message-id'");
+					"failed to read header field 'message-id'");
 			}
 		} else {
 			ret = mail_get_first_header_utf8(mail, str_c(header),
@@ -400,7 +400,7 @@ tst_duplicate_operation_execute(const struct sieve_runtime_env *renv,
 			if (ret < 0) {
 				return sieve_runtime_mail_error(
 					renv, mail, "duplicate test: "
-					"failed to read header field `%s'",
+					"failed to read header field '%s'",
 					str_c(header));
 			}
 		}
diff --git a/src/lib-sieve/plugins/editheader/cmd-addheader.c b/src/lib-sieve/plugins/editheader/cmd-addheader.c
index 4e851ccfa..3df61cc6d 100644
--- a/src/lib-sieve/plugins/editheader/cmd-addheader.c
+++ b/src/lib-sieve/plugins/editheader/cmd-addheader.c
@@ -130,7 +130,7 @@ cmd_addheader_validate(struct sieve_validator *valdtr,
 						      str_len(fname))) {
 			sieve_argument_validate_error(
 				valdtr, arg, "addheader command: "
-				"specified field name `%s' is invalid",
+				"specified field name '%s' is invalid",
 				str_sanitize(str_c(fname), 80));
 			return FALSE;
 		}
@@ -138,7 +138,7 @@ cmd_addheader_validate(struct sieve_validator *valdtr,
 		if (!ext_editheader_header_allow_add(cmd->ext, str_c(fname))) {
 			sieve_argument_validate_warning(
 				valdtr, arg, "addheader command: "
-				"adding specified header field `%s' is forbidden; "
+				"adding specified header field '%s' is forbidden; "
 				"modification will be denied",
 				str_sanitize(str_c(fname), 80));
 		}
@@ -160,7 +160,7 @@ cmd_addheader_validate(struct sieve_validator *valdtr,
 		if (_str_contains_nul(fvalue)) {
 			sieve_argument_validate_error(
 				valdtr, arg,
-				"addheader command: specified value `%s' is invalid "
+				"addheader command: specified value '%s' is invalid "
 				"(contains NUL character)",
 				str_sanitize(str_c(fvalue), 80));
 			return FALSE;
@@ -170,7 +170,7 @@ cmd_addheader_validate(struct sieve_validator *valdtr,
 			fvalue), str_len(fvalue), TRUE, TRUE)) {
 			sieve_argument_validate_warning(
 				valdtr, arg,
-				"addheader command: specified value `%s' is invalid",
+				"addheader command: specified value '%s' is invalid",
 				str_sanitize(str_c(fvalue), 80));
 		}
 
@@ -178,7 +178,7 @@ cmd_addheader_validate(struct sieve_validator *valdtr,
 			cmd->ext, str_len(fvalue))) {
 			sieve_argument_validate_error(
 				valdtr, arg, "addheader command: "
-				"specified header value `%s' is too large (%zu bytes)",
+				"specified header value '%s' is too large (%zu bytes)",
 				str_sanitize(str_c(fvalue), 80),
 				str_len(fvalue));
 			return SIEVE_EXEC_FAILURE;
@@ -309,7 +309,7 @@ cmd_addheader_operation_execute(const struct sieve_runtime_env *renv,
 					      str_len(field_name))) {
 		sieve_runtime_error(
 			renv, NULL, "addheader action: "
-			"specified field name `%s' is invalid",
+			"specified field name '%s' is invalid",
 			str_sanitize(str_c(field_name), 80));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -317,7 +317,7 @@ cmd_addheader_operation_execute(const struct sieve_runtime_env *renv,
 	if (!ext_editheader_header_allow_add(this_ext, str_c(field_name))) {
 		sieve_runtime_warning(
 			renv, NULL, "addheader action: "
-			"adding specified header field `%s' is forbidden; "
+			"adding specified header field '%s' is forbidden; "
 			"modification denied",
 			str_sanitize(str_c(field_name), 80));
 		return SIEVE_EXEC_OK;
@@ -326,7 +326,7 @@ cmd_addheader_operation_execute(const struct sieve_runtime_env *renv,
 	if (_str_contains_nul(value)) {
 		sieve_runtime_error(
 			renv, NULL, "addheader action: "
-			"specified value `%s' is invalid (contains NUL character)",
+			"specified value '%s' is invalid (contains NUL character)",
 			str_sanitize(str_c(value), 80));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -334,7 +334,7 @@ cmd_addheader_operation_execute(const struct sieve_runtime_env *renv,
 	if (ext_editheader_header_too_large(this_ext, str_len(value))) {
 		sieve_runtime_error(
 			renv, NULL, "addheader action: "
-			"specified header value `%s' is too large (%zu bytes)",
+			"specified header value '%s' is too large (%zu bytes)",
 			str_sanitize(str_c(value), 80), str_len(value));
 		return SIEVE_EXEC_FAILURE;
 	}
diff --git a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
index c08dc54c5..4b8051c27 100644
--- a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
+++ b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
@@ -270,7 +270,7 @@ cmd_deleteheader_validate(struct sieve_validator *valdtr,
 						      str_len(fname))) {
 			sieve_argument_validate_error(
 				valdtr, arg, "deleteheader command:"
-				"specified field name `%s' is invalid",
+				"specified field name '%s' is invalid",
 				str_sanitize(str_c(fname), 80));
 			return FALSE;
 		}
@@ -279,7 +279,7 @@ cmd_deleteheader_validate(struct sieve_validator *valdtr,
 			cmd->ext, str_c(fname))) {
 			sieve_argument_validate_warning(
 				valdtr, arg, "deleteheader command: "
-				"deleting specified header field `%s' is forbidden; "
+				"deleting specified header field '%s' is forbidden; "
 				"modification will be denied",
 				str_sanitize(str_c(fname), 80));
 		}
@@ -447,7 +447,7 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 					      str_len(field_name))) {
 		sieve_runtime_error(
 			renv, NULL, "deleteheader action: "
-			"specified field name `%s' is invalid",
+			"specified field name '%s' is invalid",
 			str_sanitize(str_c(field_name), 80));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -455,7 +455,7 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 	if (!ext_editheader_header_allow_delete(this_ext, str_c(field_name))) {
 		sieve_runtime_warning(
 			renv, NULL, "deleteheader action: "
-			"deleting specified header field `%s' is forbidden; "
+			"deleting specified header field '%s' is forbidden; "
 			"modification denied",
 			str_sanitize(str_c(field_name), 80));
 		return SIEVE_EXEC_OK;
@@ -483,14 +483,14 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 			if (index_offset != 0) {
 				sieve_runtime_trace(
 					renv, 0,
-					"deleting matching occurrences of header `%s' at index %llu%s",
+					"deleting matching occurrences of header '%s' at index %llu%s",
 					str_c(field_name),
 					(unsigned long long)index_offset,
 					(index_last ? " from last": ""));
 			} else {
 				sieve_runtime_trace(
 					renv, 0,
-					"deleting matching occurrences of header `%s'",
+					"deleting matching occurrences of header '%s'",
 					str_c(field_name));
 			}
 		}
@@ -526,7 +526,7 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 						/* Remove it and iterate to next */
 						sieve_runtime_trace(
 							renv, 0,
-							"deleting header with value `%s'",
+							"deleting header with value '%s'",
 							value);
 
 						if (!edit_mail_headers_iterate_remove(edhiter))
@@ -548,12 +548,12 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 		}
 
 		if (ret == 0) {
-			sieve_runtime_trace(renv, 0, "header `%s' not found",
+			sieve_runtime_trace(renv, 0, "header '%s' not found",
 					    str_c(field_name));
 		} else if (ret < 0) {
 			sieve_runtime_warning(
 				renv, NULL, "deleteheader action: "
-				"failed to delete occurrences of header `%s' "
+				"failed to delete occurrences of header '%s' "
 				"(this should not happen!)",
 				str_c(field_name));
 		}
@@ -567,13 +567,13 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 			if (index_offset != 0) {
 				sieve_runtime_trace(
 					renv, 0,
-					"deleting header `%s' at index %llu%s",
+					"deleting header '%s' at index %llu%s",
 					str_c(field_name),
 					(unsigned long long)index_offset,
 					(index_last ? " from last": ""));
 			} else {
 				sieve_runtime_trace(
-					renv, 0, "deleting header `%s'",
+					renv, 0, "deleting header '%s'",
 					str_c(field_name));
 			}
 		}
@@ -583,13 +583,13 @@ cmd_deleteheader_operation_execute(const struct sieve_runtime_env *renv,
 		if (ret < 0) {
 			sieve_runtime_warning(
 				renv, NULL, "deleteheader action: "
-				"failed to delete occurrences of header `%s' "
+				"failed to delete occurrences of header '%s' "
 				"(this should not happen!)",
 				str_c(field_name));
 		} else if (trace) {
 			sieve_runtime_trace(
 				renv, 0,
-				"deleted %d occurrences of header `%s'",
+				"deleted %d occurrences of header '%s'",
 				ret, str_c(field_name));
 		}
 	}
diff --git a/src/lib-sieve/plugins/editheader/ext-editheader-common.c b/src/lib-sieve/plugins/editheader/ext-editheader-common.c
index 89fb180b3..094ceac59 100644
--- a/src/lib-sieve/plugins/editheader/ext-editheader-common.c
+++ b/src/lib-sieve/plugins/editheader/ext-editheader-common.c
@@ -68,7 +68,7 @@ ext_editheader_config_headers(struct sieve_instance *svinst,
 				*headers, strlen(*headers))) {
 				e_warning(svinst->event, "editheader: "
 					  "setting %s contains invalid header field name "
-					  "`%s' (ignored)",
+					  "'%s' (ignored)",
 					  setting, *headers);
 				headers++;
 				continue;
diff --git a/src/lib-sieve/plugins/enotify/cmd-notify.c b/src/lib-sieve/plugins/enotify/cmd-notify.c
index 64e7024d2..4e0503389 100644
--- a/src/lib-sieve/plugins/enotify/cmd-notify.c
+++ b/src/lib-sieve/plugins/enotify/cmd-notify.c
@@ -481,7 +481,7 @@ cmd_notify_operation_execute(const struct sieve_runtime_env *renv,
 	if (sieve_runtime_trace_active(renv, SIEVE_TRLVL_ACTIONS)) {
 		sieve_runtime_trace(renv, 0, "notify action");
 		sieve_runtime_trace_descend(renv);
-		sieve_runtime_trace(renv, 0, "notify with uri `%s'",
+		sieve_runtime_trace(renv, 0, "notify with uri '%s'",
 				    str_sanitize(str_c(method_uri), 80));
 	}
 
diff --git a/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c b/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
index ffc584ffa..0234db970 100644
--- a/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
+++ b/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
@@ -788,9 +788,9 @@ ntfy_mailto_action_execute(const struct sieve_enotify_exec_env *nenv,
 	if (ret < 0) {
 		sieve_enotify_critical(
 			nenv, "mailto notification: "
-			"failed to read `auto-submitted' header field",
+			"failed to read 'auto-submitted' header field",
 			"mailto notification: "
-			"failed to read `auto-submitted' header field: %s",
+			"failed to read 'auto-submitted' header field: %s",
 			mailbox_get_last_internal_error(mail->box, NULL));
 		return -1;
 	}
diff --git a/src/lib-sieve/plugins/environment/tst-environment.c b/src/lib-sieve/plugins/environment/tst-environment.c
index a7928b4ae..0757d0191 100644
--- a/src/lib-sieve/plugins/environment/tst-environment.c
+++ b/src/lib-sieve/plugins/environment/tst-environment.c
@@ -212,7 +212,7 @@ tst_environment_operation_execute(const struct sieve_runtime_env *renv,
 
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				    "environment item `%s' not found",
+				    "environment item '%s' not found",
 				    str_sanitize(str_c(name), 128));
 	}
 
diff --git a/src/lib-sieve/plugins/ihave/tst-ihave.c b/src/lib-sieve/plugins/ihave/tst-ihave.c
index 1e4f8a1ff..b5b19a85f 100644
--- a/src/lib-sieve/plugins/ihave/tst-ihave.c
+++ b/src/lib-sieve/plugins/ihave/tst-ihave.c
@@ -271,13 +271,13 @@ tst_ihave_operation_execute(const struct sieve_runtime_env *renv,
 		if (sret == SIEVE_EXEC_FAILURE) {
 			sieve_runtime_trace(
 				renv, SIEVE_TRLVL_TESTS,
-				"extension `%s' not available",
+				"extension '%s' not available",
 				sieve_extension_name(ext));
 			matched = FALSE;
 		} else if (sret == SIEVE_EXEC_OK) {
 			sieve_runtime_trace(
 				renv, SIEVE_TRLVL_TESTS,
-				"extension `%s' available",
+				"extension '%s' available",
 				sieve_extension_name(ext));
 		} else {
 			return sret;
diff --git a/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c b/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
index eaff4298b..712b7a185 100644
--- a/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
+++ b/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
@@ -494,7 +494,7 @@ ext_imap4flags_get_flag_variable(const struct sieve_runtime_env *renv,
 			var_id = sieve_variable_get_varid(storage, var_index);
 
 			sieve_runtime_trace(renv, 0,
-					    "update variable `%s' [%s]",
+					    "update variable '%s' [%s]",
 					    var_name, var_id);
 		}
 
@@ -524,7 +524,7 @@ int sieve_ext_imap4flags_set_flags(const struct sieve_runtime_env *renv,
 		while ((ret = sieve_stringlist_next_item(
 			flags, &flags_item)) > 0) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_COMMANDS,
-					    "set flags `%s'",
+					    "set flags '%s'",
 					    str_c(flags_item));
 
 			flags_list_add_flags(cur_flags, flags_item);
@@ -553,7 +553,7 @@ int sieve_ext_imap4flags_add_flags(const struct sieve_runtime_env *renv,
 		while ((ret = sieve_stringlist_next_item(
 			flags, &flags_item)) > 0) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_COMMANDS,
-					    "add flags `%s'",
+					    "add flags '%s'",
 					    str_c(flags_item));
 
 			flags_list_add_flags(cur_flags, flags_item);
@@ -583,7 +583,7 @@ int sieve_ext_imap4flags_remove_flags(const struct sieve_runtime_env *renv,
 		while ((ret = sieve_stringlist_next_item(
 			flags, &flags_item)) > 0) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_COMMANDS,
-					    "remove flags `%s'",
+					    "remove flags '%s'",
 					    str_c(flags_item));
 
 			flags_list_remove_flags(cur_flags, flags_item);
diff --git a/src/lib-sieve/plugins/include/cmd-include.c b/src/lib-sieve/plugins/include/cmd-include.c
index 38135a773..3ca8d8df2 100644
--- a/src/lib-sieve/plugins/include/cmd-include.c
+++ b/src/lib-sieve/plugins/include/cmd-include.c
@@ -266,14 +266,14 @@ cmd_include_validate(struct sieve_validator *valdtr,
 		if (error == SIEVE_ERROR_NOT_FOUND) {
 			sieve_argument_validate_error(
 				valdtr, arg, "include: "
-				"%s location for included script `%s' is unavailable "
+				"%s location for included script '%s' is unavailable "
 				"(contact system administrator for more information)",
 				ext_include_script_location_name(ctx_data->location),
 				str_sanitize(script_name, 80));
 		} else {
 			sieve_argument_validate_error(
 				valdtr, arg, "include: "
-				"failed to access %s location for included script `%s' "
+				"failed to access %s location for included script '%s' "
 				"(contact system administrator for more information)",
 				ext_include_script_location_name(ctx_data->location),
 				str_sanitize(script_name, 80));
@@ -392,7 +392,7 @@ static bool opc_include_dump(const struct sieve_dumptime_env *denv,
 
 	sieve_code_descend(denv);
 	sieve_code_dumpf(
-		denv, "script: `%s' from %s %s%s[ID: %d, BLOCK: %d]",
+		denv, "script: '%s' from %s %s%s[ID: %d, BLOCK: %d]",
 		sieve_script_name(included->script),
 		sieve_script_location(included->script),
 		((flags & EXT_INCLUDE_FLAG_ONCE) != 0 ? "(once) " : ""),
diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c
index 04bc4b7f3..7249ad73d 100644
--- a/src/lib-sieve/plugins/include/ext-include-common.c
+++ b/src/lib-sieve/plugins/include/ext-include-common.c
@@ -91,7 +91,7 @@ bool ext_include_load(const struct sieve_extension *ext, void **context)
 	if (location == NULL) {
 		e_debug(svinst->event, "include: "
 			"sieve_global is not set; "
-			"it is currently not possible to include `:global' scripts.");
+			"it is currently not possible to include ':global' scripts.");
 	}
 
 	ctx->global_location = i_strdup(location);
@@ -154,7 +154,7 @@ ext_include_get_script_storage(const struct sieve_extension *ext,
 		if (ctx->global_location == NULL) {
 			e_info(svinst->event, "include: "
 				"sieve_global is unconfigured; "
-				"include of `:global' script `%s' is therefore not possible",
+				"include of ':global' script '%s' is therefore not possible",
 				str_sanitize(script_name, 80));
 			if (error_r != NULL)
 				*error_r = SIEVE_ERROR_NOT_FOUND;
diff --git a/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c b/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
index 34dfcbf63..0d96980fa 100644
--- a/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
+++ b/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
@@ -84,7 +84,7 @@ tst_mailboxexists_mailbox_validate(void *context,
 		if (!sieve_mailbox_check_name(mailbox, &error)) {
 			sieve_argument_validate_warning(
 				valctx->valdtr, arg, "%s test: "
-				"invalid mailbox name `%s' specified: %s",
+				"invalid mailbox name '%s' specified: %s",
 				sieve_command_identifier(valctx->tst),
 				str_sanitize(mailbox, 256), error);
 		}
@@ -163,7 +163,7 @@ tst_mailboxexists_test_mailbox(const struct sieve_runtime_env *renv,
 	if (!sieve_mailbox_check_name(mailbox, &error)) {
 		sieve_runtime_warning(
 			renv, NULL, "mailboxexists test: "
-			"invalid mailbox name `%s' specified: %s",
+			"invalid mailbox name '%s' specified: %s",
 			str_sanitize(mailbox, 256), error);
 		*all_exist_r = FALSE;
 		return SIEVE_EXEC_OK;
@@ -178,7 +178,7 @@ tst_mailboxexists_test_mailbox(const struct sieve_runtime_env *renv,
 		if (trace) {
 			sieve_runtime_trace(
 				renv, 0,
-				"mailbox `%s' cannot be opened",
+				"mailbox '%s' cannot be opened",
 				str_sanitize(mailbox, 80));
 		}
 		mailbox_free(&box);
@@ -191,7 +191,7 @@ tst_mailboxexists_test_mailbox(const struct sieve_runtime_env *renv,
 		if (trace) {
 			sieve_runtime_trace(
 				renv, 0,
-				"mailbox `%s' is read-only",
+				"mailbox '%s' is read-only",
 				str_sanitize(mailbox, 80));
 		}
 		mailbox_free(&box);
@@ -204,7 +204,7 @@ tst_mailboxexists_test_mailbox(const struct sieve_runtime_env *renv,
 
 	if (trace) {
 		sieve_runtime_trace(
-			renv, 0, "mailbox `%s' exists",
+			renv, 0, "mailbox '%s' exists",
 			str_sanitize(mailbox, 80));
 	}
 
diff --git a/src/lib-sieve/plugins/metadata/tst-metadata.c b/src/lib-sieve/plugins/metadata/tst-metadata.c
index 2e1453549..cdeb9469a 100644
--- a/src/lib-sieve/plugins/metadata/tst-metadata.c
+++ b/src/lib-sieve/plugins/metadata/tst-metadata.c
@@ -161,7 +161,7 @@ tst_metadata_validate(struct sieve_validator *valdtr, struct sieve_command *tst)
 			if (!sieve_mailbox_check_name(mailbox, &error)) {
 				sieve_argument_validate_warning(
 					valdtr, arg, "%s test: "
-					"invalid mailbox name `%s' specified: %s",
+					"invalid mailbox name '%s' specified: %s",
 					sieve_command_identifier(tst),
 					str_sanitize(mailbox, 256), error);
 			}
@@ -184,7 +184,7 @@ tst_metadata_validate(struct sieve_validator *valdtr, struct sieve_command *tst)
 		if (!imap_metadata_verify_entry_name(str_c(aname), &error)) {
 			sieve_argument_validate_warning(
 				valdtr, arg, "%s test: "
-				"specified annotation name `%s' is invalid: %s",
+				"specified annotation name '%s' is invalid: %s",
 				sieve_command_identifier(tst),
 				str_sanitize(str_c(aname), 256),
 				sieve_error_from_external(error));
@@ -300,7 +300,7 @@ tst_metadata_get_annotation(const struct sieve_runtime_env *renv,
 
 		sieve_runtime_error(
 			renv, NULL, "%s test: "
-			"failed to retrieve annotation `%s': %s%s",
+			"failed to retrieve annotation '%s': %s%s",
 			(mailbox != NULL ? "metadata" : "servermetadata"),
 			str_sanitize(aname, 256),
 			sieve_error_from_external(error),
@@ -375,7 +375,7 @@ tst_metadata_operation_execute(const struct sieve_runtime_env *renv,
 	if (!imap_metadata_verify_entry_name(str_c(aname), &error)) {
 		sieve_runtime_warning(
 			renv, NULL, "%s test: "
-			"specified annotation name `%s' is invalid: %s",
+			"specified annotation name '%s' is invalid: %s",
 			(metadata ? "metadata" : "servermetadata"),
 			str_sanitize(str_c(aname), 256),
 			sieve_error_from_external(error));
@@ -387,7 +387,7 @@ tst_metadata_operation_execute(const struct sieve_runtime_env *renv,
 		if (!sieve_mailbox_check_name(str_c(mailbox), &error)) {
 			sieve_runtime_warning(
 				renv, NULL, "metadata test: "
-				"invalid mailbox name `%s' specified: %s",
+				"invalid mailbox name '%s' specified: %s",
 				str_sanitize(str_c(mailbox), 256), error);
 			sieve_interpreter_set_test_result(renv->interp, FALSE);
 			return SIEVE_EXEC_OK;
@@ -395,13 +395,13 @@ tst_metadata_operation_execute(const struct sieve_runtime_env *renv,
 
 		sieve_runtime_trace(
 			renv, SIEVE_TRLVL_TESTS,
-			"retrieving annotation `%s' from mailbox `%s'",
+			"retrieving annotation '%s' from mailbox '%s'",
 			str_sanitize(str_c(aname), 256),
 			str_sanitize(str_c(mailbox), 80));
 	} else {
 		sieve_runtime_trace(
 			renv, SIEVE_TRLVL_TESTS,
-			"retrieving server annotation `%s'",
+			"retrieving server annotation '%s'",
 			str_sanitize(str_c(aname), 256));
 	}
 
diff --git a/src/lib-sieve/plugins/metadata/tst-metadataexists.c b/src/lib-sieve/plugins/metadata/tst-metadataexists.c
index 8c14ce275..2719d1962 100644
--- a/src/lib-sieve/plugins/metadata/tst-metadataexists.c
+++ b/src/lib-sieve/plugins/metadata/tst-metadataexists.c
@@ -126,7 +126,7 @@ tst_metadataexists_annotation_validate(void *context,
 		if (!imap_metadata_verify_entry_name(aname, &error)) {
 			sieve_argument_validate_warning(
 				valctx->valdtr, arg, "%s test: "
-				"specified annotation name `%s' is invalid: %s",
+				"specified annotation name '%s' is invalid: %s",
 				sieve_command_identifier(valctx->tst),
 				str_sanitize(aname, 256),
 				sieve_error_from_external(error));
@@ -161,7 +161,7 @@ tst_metadataexists_validate(struct sieve_validator *valdtr,
 			if (!sieve_mailbox_check_name(mailbox, &error)) {
 				sieve_argument_validate_warning(
 					valdtr, arg, "%s test: "
-					"invalid mailbox name `%s' specified: %s",
+					"invalid mailbox name '%s' specified: %s",
 					sieve_command_identifier(tst),
 					str_sanitize(mailbox, 256), error);
 			}
@@ -249,7 +249,7 @@ tst_metadataexists_check_annotation(const struct sieve_runtime_env *renv,
 	if (!imap_metadata_verify_entry_name(aname, &error)) {
 		sieve_runtime_warning(
 			renv, NULL, "%s test: "
-			"specified annotation name `%s' is invalid: %s",
+			"specified annotation name '%s' is invalid: %s",
 			(mailbox != NULL ?
 			 "metadataexists" : "servermetadataexists"),
 			str_sanitize(aname, 256),
@@ -267,7 +267,7 @@ tst_metadataexists_check_annotation(const struct sieve_runtime_env *renv,
 			imtrans, &error_code);
 		sieve_runtime_error(
 			renv, NULL, "%s test: "
-			"failed to retrieve annotation `%s': %s%s",
+			"failed to retrieve annotation '%s': %s%s",
 			(mailbox != NULL ?
 			 "metadataexists" : "servermetadataexists"),
 			str_sanitize(aname, 256),
@@ -281,11 +281,11 @@ tst_metadataexists_check_annotation(const struct sieve_runtime_env *renv,
 	}
 	if (avalue.value == NULL && avalue.value_stream == NULL) {
 		sieve_runtime_trace(renv, 0,
-				    "annotation `%s': not found", aname);
+				    "annotation '%s': not found", aname);
 		*all_exist_r = FALSE;
 	}
 
-	sieve_runtime_trace(renv, 0, "annotation `%s': found", aname);
+	sieve_runtime_trace(renv, 0, "annotation '%s': found", aname);
 	return SIEVE_EXEC_OK;
 }
 
@@ -320,7 +320,7 @@ tst_metadataexists_check_annotations(const struct sieve_runtime_env *renv,
 	if (mailbox != NULL) {
 		sieve_runtime_trace(
 			renv, SIEVE_TRLVL_TESTS,
-			"checking annotations of mailbox `%s':",
+			"checking annotations of mailbox '%s':",
 			str_sanitize(mailbox, 80));
 	} else {
 		sieve_runtime_trace(
@@ -391,7 +391,7 @@ tst_metadataexists_operation_execute(const struct sieve_runtime_env *renv,
 	    !sieve_mailbox_check_name(str_c(mailbox), &error)) {
 		sieve_runtime_warning(
 			renv, NULL, "metadataexists test: "
-			"invalid mailbox name `%s' specified: %s",
+			"invalid mailbox name '%s' specified: %s",
 			str_sanitize(str_c(mailbox), 256), error);
 		sieve_interpreter_set_test_result(renv->interp, FALSE);
 		return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/plugins/mime/cmd-break.c b/src/lib-sieve/plugins/mime/cmd-break.c
index 4b0d4d1c0..6a0bf64b1 100644
--- a/src/lib-sieve/plugins/mime/cmd-break.c
+++ b/src/lib-sieve/plugins/mime/cmd-break.c
@@ -185,7 +185,7 @@ cmd_break_validate(struct sieve_validator *valdtr, struct sieve_command *cmd)
 			sieve_command_validate_error(
 				valdtr, cmd,
 				"the break command is not placed inside "
-				"a foreverypart loop named `%s'", name);
+				"a foreverypart loop named '%s'", name);
 		}
 		return FALSE;
 	}
diff --git a/src/lib-sieve/plugins/mime/cmd-extracttext.c b/src/lib-sieve/plugins/mime/cmd-extracttext.c
index 9d14e5a62..800738913 100644
--- a/src/lib-sieve/plugins/mime/cmd-extracttext.c
+++ b/src/lib-sieve/plugins/mime/cmd-extracttext.c
@@ -375,7 +375,7 @@ cmd_extracttext_operation_execute(const struct sieve_runtime_env *renv,
 						    &var_name);
 		var_id = sieve_variable_get_varid(storage, var_index);
 
-		sieve_runtime_trace_here(renv, 0, "assign `%s' [%s] = \"%s\"",
+		sieve_runtime_trace_here(renv, 0, "assign '%s' [%s] = \"%s\"",
 					 var_name, var_id, str_c(value));
 	}
 
diff --git a/src/lib-sieve/plugins/mime/tag-mime.c b/src/lib-sieve/plugins/mime/tag-mime.c
index cfa8817d2..ff646c54a 100644
--- a/src/lib-sieve/plugins/mime/tag-mime.c
+++ b/src/lib-sieve/plugins/mime/tag-mime.c
@@ -332,7 +332,7 @@ content_type_param_next(struct content_header_stringlist *strlist)
 					/* Return raw value */
 					if (trace) {
 						sieve_runtime_trace(renv, 0,
-							"found mime parameter `%s' in mime header",
+							"found mime parameter '%s' in mime header",
 							*params);
 					}
 
diff --git a/src/lib-sieve/plugins/regex/mcht-regex.c b/src/lib-sieve/plugins/regex/mcht-regex.c
index 28db4aa92..2079bc5af 100644
--- a/src/lib-sieve/plugins/regex/mcht-regex.c
+++ b/src/lib-sieve/plugins/regex/mcht-regex.c
@@ -331,7 +331,7 @@ mcht_regex_match_keys(struct sieve_match_context *mctx,
 
 					if (trace) {
 						sieve_runtime_trace(renv, 0,
-							"with regex `%s' [id=%d] => %d",
+							"with regex '%s' [id=%d] => %d",
 							str_sanitize(str_c(key_item), 80),
 							array_count(&ctx->reg_expressions)-1, match);
 					}
diff --git a/src/lib-sieve/plugins/relational/mcht-count.c b/src/lib-sieve/plugins/relational/mcht-count.c
index 7680f8c1b..e0f7036f5 100644
--- a/src/lib-sieve/plugins/relational/mcht-count.c
+++ b/src/lib-sieve/plugins/relational/mcht-count.c
@@ -85,7 +85,7 @@ mcht_count_match(struct sieve_match_context *mctx,
 	str_printfa(value, "%d", count);
 
 	if (trace) {
-		sieve_runtime_trace(renv, 0, "matching count value `%s'",
+		sieve_runtime_trace(renv, 0, "matching count value '%s'",
 				    str_sanitize(str_c(value), 80));
 	}
 
@@ -102,7 +102,7 @@ mcht_count_match(struct sieve_match_context *mctx,
 			str_c(key_item), str_len(key_item));
 
 		if (trace) {
-			sieve_runtime_trace(renv, 0, "with key `%s' => %d",
+			sieve_runtime_trace(renv, 0, "with key '%s' => %d",
 					    str_sanitize(str_c(key_item), 80),
 					    ret);
 		}
diff --git a/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c b/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
index 803380df6..78ae3cc86 100644
--- a/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
+++ b/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
@@ -531,7 +531,7 @@ int ext_spamvirustest_get_value(const struct sieve_runtime_env *renv,
 				&header_value) < 0) {
 				return sieve_runtime_mail_error	(
 					renv, mail, "%s test: "
-					"failed to read header field `%s'",
+					"failed to read header field '%s'",
 					sieve_extension_name(ext),
 					max_header->header_name);
 			}
@@ -600,7 +600,7 @@ int ext_spamvirustest_get_value(const struct sieve_runtime_env *renv,
 	if (mail_get_first_header_utf8(mail, status_header->header_name,
 				       &header_value) < 0) {
 		return sieve_runtime_mail_error(
-			renv, mail, "%s test: failed to read header field `%s'",
+			renv, mail, "%s test: failed to read header field '%s'",
 			sieve_extension_name(ext), status_header->header_name);
 	}
 	if (header_value == NULL) {
diff --git a/src/lib-sieve/plugins/special-use/tag-specialuse.c b/src/lib-sieve/plugins/special-use/tag-specialuse.c
index d4ccaaf90..7a3850d73 100644
--- a/src/lib-sieve/plugins/special-use/tag-specialuse.c
+++ b/src/lib-sieve/plugins/special-use/tag-specialuse.c
@@ -117,7 +117,7 @@ tag_specialuse_validate(struct sieve_validator *valdtr,
 		if (!ext_special_use_flag_valid(use_flag)) {
 			sieve_argument_validate_error(
 				valdtr, *arg, "specialuse tag: "
-				"invalid special-use flag `%s' specified",
+				"invalid special-use flag '%s' specified",
 				str_sanitize(use_flag, 64));
 			return FALSE;
 		}
@@ -200,7 +200,7 @@ seff_specialuse_read_context(
 	if (!ext_special_use_flag_valid(use_flag)) {
 		sieve_runtime_error(
 			renv, NULL, "specialuse tag: "
-			"invalid special-use flag `%s' specified",
+			"invalid special-use flag '%s' specified",
 			str_sanitize(use_flag, 64));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -241,7 +241,7 @@ seff_specialuse_print(const struct sieve_side_effect *seffect,
 
 	sieve_result_seffect_printf(
 		rpenv,
-		"use mailbox with special-use flag `%s' instead if accessible",
+		"use mailbox with special-use flag '%s' instead if accessible",
 		ctx->special_use_flag);
 }
 
diff --git a/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c b/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
index 5d471fc09..0ff90f160 100644
--- a/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
+++ b/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
@@ -84,7 +84,7 @@ tst_specialuse_exists_flag_validate(void *context,
 		if (!ext_special_use_flag_valid(flag)) {
 			sieve_argument_validate_error(
 				valctx->valdtr, arg, "%s test: "
-				"invalid special-use flag `%s' specified",
+				"invalid special-use flag '%s' specified",
 				sieve_command_identifier(valctx->tst),
 				str_sanitize(flag, 64));
 		}
@@ -149,7 +149,7 @@ tst_specialuse_exists_validate(struct sieve_validator *valdtr,
 			if (!sieve_mailbox_check_name(mailbox, &error)) {
 				sieve_argument_validate_warning(
 					valdtr, arg, "%s test: "
-					"invalid mailbox name `%s' specified: %s",
+					"invalid mailbox name '%s' specified: %s",
 					sieve_command_identifier(tst),
 					str_sanitize(mailbox, 256), error);
 			}
@@ -265,7 +265,7 @@ tst_specialuse_find_mailbox(const struct sieve_runtime_env *renv,
 
 		if (trace) {
 			sieve_runtime_trace(
-				renv, 0, "mailbox `%s' cannot be opened: %s",
+				renv, 0, "mailbox '%s' cannot be opened: %s",
 				str_sanitize(mailbox, 256), error);
 		}
 
@@ -274,7 +274,7 @@ tst_specialuse_find_mailbox(const struct sieve_runtime_env *renv,
 		if (error_code == MAIL_ERROR_TEMP) {
 			sieve_runtime_error(
 				renv, NULL,	"specialuse_exists test: "
-				"failed to open mailbox `%s': %s",
+				"failed to open mailbox '%s': %s",
 				str_sanitize(mailbox, 256), error);
 			return -1;
 		}
@@ -285,7 +285,7 @@ tst_specialuse_find_mailbox(const struct sieve_runtime_env *renv,
 	if (mailbox_is_readonly(box)) {
 		if (trace) {
 			sieve_runtime_trace(
-				renv, 0, "mailbox `%s' is read-only",
+				renv, 0, "mailbox '%s' is read-only",
 				str_sanitize(mailbox, 256));
 		}
 
@@ -320,7 +320,7 @@ tst_specialuse_find_specialuse(const struct sieve_runtime_env *renv,
 
 		if (trace) {
 			sieve_runtime_trace(
-				renv, 0, "mailbox with special-use flag `%s' "
+				renv, 0, "mailbox with special-use flag '%s' "
 				"cannot be opened: %s",
 				str_sanitize(special_use, 64), error);
 		}
@@ -330,7 +330,7 @@ tst_specialuse_find_specialuse(const struct sieve_runtime_env *renv,
 		if (error_code == MAIL_ERROR_TEMP) {
 			sieve_runtime_error(
 				renv, NULL, "specialuse_exists test: "
-				"failed to open mailbox with special-use flag`%s': %s",
+				"failed to open mailbox with special-use flag'%s': %s",
 				str_sanitize(special_use, 64), error);
 			return -1;
 		}
@@ -342,7 +342,7 @@ tst_specialuse_find_specialuse(const struct sieve_runtime_env *renv,
 		if (trace) {
 			sieve_runtime_trace(
 				renv, 0,
-				"mailbox with special-use flag `%s' is read-only",
+				"mailbox with special-use flag '%s' is read-only",
 				str_sanitize(special_use, 64));
 		}
 
@@ -364,7 +364,7 @@ tst_specialuse_exists_check_flag(const struct sieve_runtime_env *renv,
 	if (!ext_special_use_flag_valid(use_flag)) {
 		sieve_runtime_error(
 			renv, NULL, "specialuse_exists test: "
-			"invalid special-use flag `%s' specified",
+			"invalid special-use flag '%s' specified",
 			str_sanitize(use_flag, 64));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -388,7 +388,7 @@ tst_specialuse_exists_check_flag(const struct sieve_runtime_env *renv,
 
 	if (trace) {
 		sieve_runtime_trace(
-			renv, 0, "special-use flag `%s' exists",
+			renv, 0, "special-use flag '%s' exists",
 			str_sanitize(use_flag, 80));
 	}
 
@@ -457,7 +457,7 @@ tst_specialuse_exists_operation_execute(const struct sieve_runtime_env *renv,
 		if (!sieve_mailbox_check_name(str_c(mailbox), &error)) {
 			sieve_runtime_warning(
 				renv, NULL, "specialuse_exists test: "
-				"invalid mailbox name `%s' specified: %s",
+				"invalid mailbox name '%s' specified: %s",
 				str_sanitize(str_c(mailbox), 256), error);
 			sieve_interpreter_set_test_result(renv->interp, FALSE);
 			return SIEVE_EXEC_OK;
@@ -469,7 +469,7 @@ tst_specialuse_exists_operation_execute(const struct sieve_runtime_env *renv,
 
 	if (box == NULL && mailbox != NULL) {
 		sieve_runtime_trace(
-			renv, 0, "mailbox `%s' is not accessible",
+			renv, 0, "mailbox '%s' is not accessible",
 			str_sanitize(str_c(mailbox), 80));
 		sieve_interpreter_set_test_result(renv->interp, FALSE);
 		return SIEVE_EXEC_OK;
@@ -477,7 +477,7 @@ tst_specialuse_exists_operation_execute(const struct sieve_runtime_env *renv,
 
 	if (mailbox != NULL) {
 		sieve_runtime_trace(
-			renv, 0, "mailbox `%s' is accessible",
+			renv, 0, "mailbox '%s' is accessible",
 			str_sanitize(str_c(mailbox), 80));
 	}
 
diff --git a/src/lib-sieve/plugins/vacation/cmd-vacation.c b/src/lib-sieve/plugins/vacation/cmd-vacation.c
index 349ec0747..a02916dfc 100644
--- a/src/lib-sieve/plugins/vacation/cmd-vacation.c
+++ b/src/lib-sieve/plugins/vacation/cmd-vacation.c
@@ -679,7 +679,7 @@ ext_vacation_operation_execute(const struct sieve_runtime_env *renv,
 	if (sieve_runtime_trace_active(renv, SIEVE_TRLVL_ACTIONS)) {
 		sieve_runtime_trace(renv, 0, "vacation action");
 		sieve_runtime_trace_descend(renv);
-		sieve_runtime_trace(renv, 0, "auto-reply with message `%s'",
+		sieve_runtime_trace(renv, 0, "auto-reply with message '%s'",
 				    str_sanitize(str_c(reason), 80));
 	}
 
@@ -998,7 +998,7 @@ _get_full_reply_recipient(const struct sieve_action_exec_env *aenv,
 		if (ret < 0) {
 			return sieve_result_mail_error(
 				aenv, msgdata->mail,
-				"failed to read header field `%s'", *hdsp);
+				"failed to read header field '%s'", *hdsp);
 		}
 		if (ret == 0 || header == NULL)
 			continue;
@@ -1042,7 +1042,7 @@ act_vacation_get_default_subject(const struct sieve_action_exec_env *aenv,
 	if (ret < 0) {
 		return sieve_result_mail_error(
 			aenv, msgdata->mail,
-			"failed to read header field `subject'");
+			"failed to read header field 'subject'");
 	}
 	if (ret == 0)
 		return SIEVE_EXEC_OK;
@@ -1155,7 +1155,7 @@ act_vacation_send(const struct sieve_action_exec_env *aenv,
 		sieve_smtp_abort(sctx);
 		return sieve_result_mail_error(
 			aenv, msgdata->mail,
-			"failed to read header field `references'");
+			"failed to read header field 'references'");
 	}
 
 	if (msgdata->id != NULL) {
@@ -1339,7 +1339,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 		if (ret < 0) {
 			return sieve_result_mail_error(
 				aenv, mail,
-				"failed to read header field `%s'", *hdsp);
+				"failed to read header field '%s'", *hdsp);
 		}
 
 		if (ret > 0 && headers[0] != NULL) {
@@ -1358,7 +1358,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 	if (ret < 0) {
 		return sieve_result_mail_error(
 			aenv, mail,
-			"failed to read header field `auto-submitted'");
+			"failed to read header field 'auto-submitted'");
 	}
 	/* Theoretically multiple headers could exist, so lets make sure */
 	if (ret > 0) {
@@ -1379,7 +1379,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 	ret = mail_get_headers(mail, "precedence", &headers);
 	if (ret < 0) {
 		return sieve_result_mail_error(
-			aenv, mail, "failed to read header field `precedence'");
+			aenv, mail, "failed to read header field 'precedence'");
 	}
 	/* Theoretically multiple headers could exist, so lets make sure */
 	if (ret > 0) {
@@ -1403,7 +1403,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 	if (ret < 0) {
 		return sieve_result_mail_error(
 			aenv, mail,
-			"failed to read header field `x-auto-response-suppress'");
+			"failed to read header field 'x-auto-response-suppress'");
 	}
 	/* Theoretically multiple headers could exist, so lets make sure */
 	if (ret > 0) {
@@ -1418,7 +1418,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 				    strcasecmp(flag, "OOF") == 0) {
 					sieve_result_global_log(
 						aenv, "discarding vacation response to message from <%s> "
-						"(`%s' flag found in x-auto-response-suppress header)",
+						"('%s' flag found in x-auto-response-suppress header)",
 						smtp_address_encode(sender), flag);
 					return SIEVE_EXEC_OK;
 				}
@@ -1451,7 +1451,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 		ret = mail_get_headers(mail, *hdsp, &headers);
 		if (ret < 0) {
 			return sieve_result_mail_error(
-				aenv, mail, "failed to read header field `%s'",
+				aenv, mail, "failed to read header field '%s'",
 				*hdsp);
 		}
 		if (ret > 0 && headers[0] != NULL) {
@@ -1535,7 +1535,7 @@ act_vacation_commit(const struct sieve_action_exec_env *aenv,
 			sieve_result_global_log(
 				aenv, "discarding vacation response for implicitly delivered message; "
 				"no known (envelope) recipient address found in message headers "
-				"(recipient=<%s>, %s%sand%s additional `:addresses' are specified)",
+				"(recipient=<%s>, %s%sand%s additional ':addresses' are specified)",
 				smtp_address_encode(recipient),
 				orig_rcpt_str, user_email_str,
 				(ctx->addresses == NULL || *ctx->addresses == NULL ?
diff --git a/src/lib-sieve/plugins/variables/cmd-set.c b/src/lib-sieve/plugins/variables/cmd-set.c
index 95c9a7743..2e7b9b415 100644
--- a/src/lib-sieve/plugins/variables/cmd-set.c
+++ b/src/lib-sieve/plugins/variables/cmd-set.c
@@ -227,7 +227,7 @@ cmd_set_operation_execute(const struct sieve_runtime_env *renv,
 						    &var_name);
 		var_id = sieve_variable_get_varid(storage, var_index);
 
-		sieve_runtime_trace_here(renv, 0, "assign `%s' [%s] = \"%s\"",
+		sieve_runtime_trace_here(renv, 0, "assign '%s' [%s] = \"%s\"",
 					 var_name, var_id, str_c(value));
 	}
 
diff --git a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
index 7367d2e8f..e4b45160b 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
@@ -73,7 +73,7 @@ vnspc_vnd_environment_validate(
 		if (name_elements[i].num_variable >= 0) {
 			sieve_argument_validate_error(
 				valdtr, arg, "vnd.dovecot.environment: "
-				"invalid variable name within env namespace `env.%d': "
+				"invalid variable name within env namespace 'env.%d': "
 				"encountered numeric variable name",
 				name_elements[i].num_variable);
 			return FALSE;
@@ -88,7 +88,7 @@ vnspc_vnd_environment_validate(
 	if (assignment) {
 		sieve_argument_validate_error(
 			valdtr, arg, "vnd.dovecot.environment: "
-			"cannot assign to environment variable `env.%s'",
+			"cannot assign to environment variable 'env.%s'",
 			variable);
 		return FALSE;
 	}
diff --git a/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c b/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
index f96a1b4eb..109d1b36d 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
@@ -178,7 +178,7 @@ cmd_report_validate(struct sieve_validator *valdtr, struct sieve_command *cmd)
 			if (feedback_type == NULL) {
 				sieve_argument_validate_error(
 					valdtr, arg,
-					"specified feedback type `%s' is invalid",
+					"specified feedback type '%s' is invalid",
 					str_sanitize(str_c(fbtype),128));
 			}
 		} T_END;
@@ -346,7 +346,7 @@ cmd_report_operation_execute(const struct sieve_runtime_env *renv,
 	if (feedback_type == NULL) {
 		sieve_runtime_error(
 			renv, NULL,
-			"specified report feedback type `%s' is invalid",
+			"specified report feedback type '%s' is invalid",
 			str_sanitize(str_c(fbtype), 256));
 		return SIEVE_EXEC_FAILURE;
 	}
@@ -366,7 +366,7 @@ cmd_report_operation_execute(const struct sieve_runtime_env *renv,
 		sieve_runtime_trace(renv, 0, "report action");
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "report incoming message as `%s' to address %s",
+			renv, 0, "report incoming message as '%s' to address %s",
 			str_sanitize(str_c(fbtype), 32),
 			smtp_address_encode_path(parsed_address));
 	}
@@ -425,7 +425,7 @@ act_report_print(const struct sieve_action *action,
 		(struct act_report_data *)action->context;
 
 	sieve_result_action_printf(rpenv,
-		"report incoming message as `%s' to: %s",
+		"report incoming message as '%s' to: %s",
 		str_sanitize(rdd->feedback_type, 32),
 		smtp_address_encode_path(rdd->to_address));
 }
@@ -475,7 +475,7 @@ act_report_send(const struct sieve_action_exec_env *aenv,
 	if (ret < 0) {
 		return sieve_result_mail_error(
 			aenv, msgdata->mail,
-			"failed to read header field `subject'");
+			"failed to read header field 'subject'");
 	}
 	if (ret > 0 && headers[0] != NULL)
 		subject = t_strconcat("Report: ", headers[0], NULL);
@@ -635,14 +635,14 @@ act_report_send(const struct sieve_action_exec_env *aenv,
 	if (ret <= 0) {
 		if (ret < 0) {
 			sieve_result_global_error(
-				aenv, "failed to send `%s' report to <%s>: %s "
+				aenv, "failed to send '%s' report to <%s>: %s "
 				"(temporary failure)",
 				str_sanitize(act->feedback_type, 32),
 				smtp_address_encode(act->to_address),
 				str_sanitize(error, 512));
 		} else {
 			sieve_result_global_log_error(
-				aenv, "failed to send `%s' report to <%s>: %s "
+				aenv, "failed to send '%s' report to <%s>: %s "
 				"(permanent failure)",
 				str_sanitize(act->feedback_type, 32),
 				smtp_address_encode(act->to_address),
@@ -659,7 +659,7 @@ act_report_send(const struct sieve_action_exec_env *aenv,
 				str_sanitize(act->feedback_type, 32));
 
 		sieve_result_event_log(aenv, e->event(),
-				       "sent `%s' report to <%s>",
+				       "sent '%s' report to <%s>",
 				       str_sanitize(act->feedback_type, 32),
 				       smtp_address_encode(act->to_address));
 	}
diff --git a/src/lib-sieve/sieve-address-parts.c b/src/lib-sieve/sieve-address-parts.c
index 849d7a9a7..fdda12b47 100644
--- a/src/lib-sieve/sieve-address-parts.c
+++ b/src/lib-sieve/sieve-address-parts.c
@@ -298,7 +298,7 @@ sieve_address_part_stringlist_next_item(struct sieve_stringlist *_strlist,
 				if (_strlist->trace) {
 					sieve_runtime_trace(
 						_strlist->runenv, 0,
-						"extracting `%s' part from non-address value `%s'",
+						"extracting '%s' part from non-address value '%s'",
 						sieve_address_part_name(strlist->addrp),
 						str_sanitize(str_c(item_unparsed), 80));
 				}
@@ -314,7 +314,7 @@ sieve_address_part_stringlist_next_item(struct sieve_stringlist *_strlist,
 			if (_strlist->trace) {
 				sieve_runtime_trace(
 					_strlist->runenv, 0,
-					"extracting `%s' part from address %s",
+					"extracting '%s' part from address %s",
 					sieve_address_part_name(strlist->addrp),
 					smtp_address_encode_path(&item));
 			}
diff --git a/src/lib-sieve/sieve-address.c b/src/lib-sieve/sieve-address.c
index c0d982a53..96f3a6566 100644
--- a/src/lib-sieve/sieve-address.c
+++ b/src/lib-sieve/sieve-address.c
@@ -111,7 +111,7 @@ sieve_header_address_list_next_item(struct sieve_address_list *_addrlist,
 			if (trace) {
 				sieve_runtime_trace(
 					runenv, 0,
-					"invalid address value `%s'",
+					"invalid address value '%s'",
 					str_sanitize(str_c(value_item), 80));
 			}
 			if (unparsed_r != NULL)
@@ -122,7 +122,7 @@ sieve_header_address_list_next_item(struct sieve_address_list *_addrlist,
 			if (trace) {
 				sieve_runtime_trace(
 					runenv, 0,
-					"address value `%s'",
+					"address value '%s'",
 					str_sanitize(smtp_address_encode(addr_r),
 						     80));
 			}
@@ -148,7 +148,7 @@ sieve_header_address_list_next_item(struct sieve_address_list *_addrlist,
 		if (trace) {
 			sieve_runtime_trace(
 				runenv, 0,
-				"parsing address header value `%s'",
+				"parsing address header value '%s'",
 				str_sanitize(str_c(value_item), 80));
 		}
 
diff --git a/src/lib-sieve/sieve-binary-file.c b/src/lib-sieve/sieve-binary-file.c
index 30e136037..d0f7e6fb2 100644
--- a/src/lib-sieve/sieve-binary-file.c
+++ b/src/lib-sieve/sieve-binary-file.c
@@ -824,7 +824,7 @@ static int _read_extensions(struct sieve_binary_block *sblock)
 
 				if (ext == NULL) {
 					e_error(sbin->event, "open: "
-						"binary requires unknown extension `%s'",
+						"binary requires unknown extension '%s'",
 						str_sanitize(str_c(extension), 128));
 					result = 0;
 				} else {
@@ -837,7 +837,7 @@ static int _read_extensions(struct sieve_binary_block *sblock)
 					} else if (!sieve_extension_version_is(ext, version)) {
 						e_debug(sbin->event, "open: "
 							"binary was compiled with different version "
-							"of the `%s' extension (compiled v%d, expected v%d;"
+							"of the '%s' extension (compiled v%d, expected v%d;"
 							"automatically fixed when re-compiled)",
 							sieve_extension_name(ext), version,
 							sieve_extension_version(ext));
diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c
index 274e142d4..e0bd6ee31 100644
--- a/src/lib-sieve/sieve-interpreter.c
+++ b/src/lib-sieve/sieve-interpreter.c
@@ -225,7 +225,7 @@ _sieve_interpreter_create(struct sieve_binary *sbin,
 				if (ext->global &&
 				    (eenv->flags & SIEVE_EXECUTE_FLAG_NOGLOBAL) != 0) {
 					sieve_runtime_error(&interp->runenv, NULL,
-						"failed to enable extension `%s': "
+						"failed to enable extension '%s': "
 						"its use is restricted to global scripts",
 						sieve_extension_name(ext));
 					success = FALSE;
@@ -297,7 +297,7 @@ void sieve_interpreter_free(struct sieve_interpreter **_interp)
 			event_create_passthrough(interp->runenv.event)->
 			set_name("sieve_runtime_script_finished")->
 			add_str("error", "Aborted");
-		e_debug(e->event(), "Aborted running script `%s'",
+		e_debug(e->event(), "Aborted running script '%s'",
 			sieve_binary_source(interp->runenv.sbin));
 
 		interp->running = FALSE;
@@ -1001,7 +1001,7 @@ int sieve_interpreter_continue(struct sieve_interpreter *interp,
 			/* Not supposed to occur at runtime */
 			i_unreached();
 		}
-		e_debug(e->event(), "Finished running script `%s' "
+		e_debug(e->event(), "Finished running script '%s' "
 			"(status=%s, resource usage: %s)",
 			sieve_binary_source(interp->runenv.sbin),
 			sieve_execution_exitcode_to_str(ret),
@@ -1023,7 +1023,7 @@ int sieve_interpreter_start(struct sieve_interpreter *interp,
 	struct event_passthrough *e =
 		event_create_passthrough(interp->runenv.event)->
 		set_name("sieve_runtime_script_started");
-	e_debug(e->event(), "Started running script `%s'",
+	e_debug(e->event(), "Started running script '%s'",
 		sieve_binary_source(interp->runenv.sbin));
 
 	interp->running = TRUE;
diff --git a/src/lib-sieve/sieve-match.c b/src/lib-sieve/sieve-match.c
index cdb3b1600..f67aaae40 100644
--- a/src/lib-sieve/sieve-match.c
+++ b/src/lib-sieve/sieve-match.c
@@ -53,7 +53,7 @@ sieve_match_begin(const struct sieve_runtime_env *renv,
 	if (mctx->trace) {
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "starting `:%s' match with `%s' comparator:",
+			renv, 0, "starting ':%s' match with '%s' comparator:",
 			sieve_match_type_name(mcht),
 			sieve_comparator_name(cmp));
 	}
@@ -74,7 +74,7 @@ int sieve_match_value(struct sieve_match_context *mctx,
 	int match, ret;
 
 	if (mctx->trace) {
-		sieve_runtime_trace(renv, 0, "matching value `%s'",
+		sieve_runtime_trace(renv, 0, "matching value '%s'",
 				    str_sanitize(value, 80));
 	}
 
@@ -104,7 +104,7 @@ int sieve_match_value(struct sieve_match_context *mctx,
 				str_c(key_item), str_len(key_item));
 			if (mctx->trace) {
 				sieve_runtime_trace(
-					renv, 0, "with key `%s' => %d",
+					renv, 0, "with key '%s' => %d",
 					str_sanitize(str_c(key_item), 80),
 					match);
 			}
diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c
index baba1510a..995a7cf67 100644
--- a/src/lib-sieve/sieve-message.c
+++ b/src/lib-sieve/sieve-message.c
@@ -534,7 +534,7 @@ sieve_message_header_list_next_item(struct sieve_header_list *_hdrlist,
 		if (_hdrlist->strlist.trace) {
 			sieve_runtime_trace
 				(renv, 0,
-				"extracting `%s' headers from message",
+				"extracting '%s' headers from message",
 				str_sanitize(str_c(hdr_item), 80));
 		}
 
@@ -551,7 +551,7 @@ sieve_message_header_list_next_item(struct sieve_header_list *_hdrlist,
 			_hdrlist->strlist.exec_status =
 				sieve_runtime_mail_error(
 					renv, mail,
-					"failed to read header field `%s'",
+					"failed to read header field '%s'",
 					str_c(hdr_item));
 			return -1;
 		}
@@ -1820,7 +1820,7 @@ sieve_mime_header_list_next_item(struct sieve_header_list *_hdrlist,
 			if (_hdrlist->strlist.trace) {
 				sieve_runtime_trace(
 					renv, 0,
-					"extracting `%s' headers from message part",
+					"extracting '%s' headers from message part",
 					str_sanitize(str_c(hdr_item), 80));
 			}
 
diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c
index c6df3730b..7e552cf3b 100644
--- a/src/lib-sieve/sieve-script.c
+++ b/src/lib-sieve/sieve-script.c
@@ -106,7 +106,7 @@ void sieve_script_init(struct sieve_script *script,
 		event_set_append_log_prefix(script->event, "script: ");
 	else {
 		event_set_append_log_prefix(
-			script->event, t_strdup_printf("script `%s': ", name));
+			script->event, t_strdup_printf("script '%s': ", name));
 	}
 
 	sieve_storage_ref(storage);
@@ -189,10 +189,10 @@ int sieve_script_open(struct sieve_script *script, enum sieve_error *error_r)
 	script->open = TRUE;
 
 	if (*script->name != '\0') {
-		e_debug(script->event, "Opened script `%s' from `%s'",
+		e_debug(script->event, "Opened script '%s' from '%s'",
 			script->name, script->location);
 	} else {
-		e_debug(script->event, "Opened nameless script from `%s'",
+		e_debug(script->event, "Opened nameless script from '%s'",
 			script->location);
 	}
 	return 0;
@@ -395,15 +395,15 @@ int sieve_script_binary_read_metadata(struct sieve_script *script,
 	/* storage class */
 	if (!sieve_binary_read_string(sblock, offset, &storage_class)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s': "
+			"Binary '%s' has invalid metadata for script '%s': "
 			"Invalid storage class",
 			sieve_binary_path(sbin), script->location);
 		return -1;
 	}
 	if (strcmp(str_c(storage_class), script->driver_name) != 0) {
 		e_debug(script->event,
-			"Binary `%s' reports unexpected driver name for script `%s' "
-			"(`%s' rather than `%s')",
+			"Binary '%s' reports unexpected driver name for script '%s' "
+			"('%s' rather than '%s')",
 			sieve_binary_path(sbin), script->location,
 			str_c(storage_class), script->driver_name);
 		return 0;
@@ -412,15 +412,15 @@ int sieve_script_binary_read_metadata(struct sieve_script *script,
 	/* version */
 	if (!sieve_binary_read_unsigned(sblock, offset, &version)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s': "
+			"Binary '%s' has invalid metadata for script '%s': "
 			"Invalid version",
 			sieve_binary_path(sbin), script->location);
 		return -1;
 	}
 	if (script->storage->version != version) {
 		e_debug(script->event,
-			"Binary `%s' was compiled with "
-			"a different version of the `%s' script storage class "
+			"Binary '%s' was compiled with "
+			"a different version of the '%s' script storage class "
 			"(compiled v%d, expected v%d; "
 				"automatically fixed when re-compiled)",
 			sieve_binary_path(sbin), script->driver_name,
@@ -431,7 +431,7 @@ int sieve_script_binary_read_metadata(struct sieve_script *script,
 	/* location */
 	if (!sieve_binary_read_string(sblock, offset, &location)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s': "
+			"Binary '%s' has invalid metadata for script '%s': "
 			"Invalid location",
 			sieve_binary_path(sbin), script->location);
 		return -1;
@@ -439,8 +439,8 @@ int sieve_script_binary_read_metadata(struct sieve_script *script,
 	i_assert(script->location != NULL);
 	if (strcmp(str_c(location), script->location) != 0) {
 		e_debug(script->event,
-			"Binary `%s' reports different location "
-			"for script `%s' (binary points to `%s')",
+			"Binary '%s' reports different location "
+			"for script '%s' (binary points to '%s')",
 			sieve_binary_path(sbin), script->location,
 			str_c(location));
 		return 0;
@@ -595,7 +595,7 @@ sieve_script_copy_from_default(struct sieve_script *script, const char *newname)
 
 		if (ret < 0) {
 			e_error(storage->event,
-				"Failed to implicitly activate script `%s' "
+				"Failed to implicitly activate script '%s' "
 				"after rename",	newname);
 			sieve_storage_copy_error(storage->default_for, storage);
 		}
@@ -617,7 +617,7 @@ int sieve_script_rename(struct sieve_script *script, const char *newname)
 	if (!sieve_script_name_is_valid(newname)) {
 		sieve_script_set_error(script,
 			SIEVE_ERROR_BAD_PARAMS,
-			"Invalid new Sieve script name `%s'.",
+			"Invalid new Sieve script name '%s'.",
 			str_sanitize(newname, 80));
 		return -1;
 	}
@@ -653,7 +653,7 @@ int sieve_script_rename(struct sieve_script *script, const char *newname)
 		set_name("sieve_script_renamed");
 
 	if (ret >= 0) {
-		e_debug(event->event(), "Script renamed to `%s'", newname);
+		e_debug(event->event(), "Script renamed to '%s'", newname);
 	} else {
 		event = event->add_str("error", storage->error);
 
diff --git a/src/lib-sieve/sieve-settings.c b/src/lib-sieve/sieve-settings.c
index 47f70da4c..82a6ce09f 100644
--- a/src/lib-sieve/sieve-settings.c
+++ b/src/lib-sieve/sieve-settings.c
@@ -262,7 +262,7 @@ void sieve_settings_load(struct sieve_instance *svinst)
 			&address, &error) < 0) {
 			e_warning(svinst->event,
 				  "Invalid address value for setting "
-				  "`sieve_user_email': %s", error);
+				  "'sieve_user_email': %s", error);
 		} else {
 			svinst->user_email = address;
 		}
diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 096f457e7..52eceb44a 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -157,11 +157,11 @@ sieve_storage_driver_parse(struct sieve_instance *svinst, const char **data,
 		storage_class = sieve_storage_find_class(svinst, driver);
 		if (storage_class == NULL) {
 			e_error(svinst->event,
-				"Unknown storage driver module `%s'",
+				"Unknown storage driver module '%s'",
 				driver);
 		} else if (storage_class->v.alloc == NULL) {
 			e_error(svinst->event,
-				"Support not compiled in for storage driver `%s'",
+				"Support not compiled in for storage driver '%s'",
 				driver);
 			storage_class = NULL;
 		}
@@ -208,7 +208,7 @@ sieve_storage_data_parse(struct sieve_storage *storage, const char *data,
 					if (!sieve_script_name_is_valid(value)) {
 						e_error(storage->event,
 							"Failed to parse storage location: "
-							"Invalid script name `%s'.",
+							"Invalid script name '%s'.",
 							str_sanitize(value, 80));
 						return -1;
 					}
@@ -509,7 +509,7 @@ sieve_storage_create_main(struct sieve_instance *svinst, struct mail_user *user,
 		if (set_default_name != NULL && *set_default_name != '\0' &&
 		    !sieve_script_name_is_valid(set_default_name)) {
 			e_error(storage->event,
-				"Invalid script name `%s' for `sieve_default_name' setting.",
+				"Invalid script name '%s' for 'sieve_default_name' setting.",
 				str_sanitize(set_default_name, 80));
 			set_default_name = NULL;
 		}
@@ -519,7 +519,7 @@ sieve_storage_create_main(struct sieve_instance *svinst, struct mail_user *user,
 		if (storage->default_location != NULL &&
 			storage->default_name != NULL) {
 			e_debug(storage->event,
-				"Default script at `%s' is visible by name `%s'",
+				"Default script at '%s' is visible by name '%s'",
 				storage->default_location, storage->default_name);
 		}
 	} else if (*error_r != SIEVE_ERROR_TEMP_FAILURE &&
@@ -533,7 +533,7 @@ sieve_storage_create_main(struct sieve_instance *svinst, struct mail_user *user,
 				"No default script location configured");
 		} else {
 			e_debug(svinst->event, "storage: "
-				"Trying default script location `%s'",
+				"Trying default script location '%s'",
 				set_default);
 
 			storage = sieve_storage_create(svinst, set_default, 0,
@@ -542,18 +542,18 @@ sieve_storage_create_main(struct sieve_instance *svinst, struct mail_user *user,
 				switch (*error_r) {
 				case SIEVE_ERROR_NOT_FOUND:
 					e_debug(svinst->event, "storage: "
-						"Default script location `%s' not found",
+						"Default script location '%s' not found",
 						set_default);
 					break;
 				case SIEVE_ERROR_TEMP_FAILURE:
 					e_error(svinst->event, "storage: "
-						"Failed to access default script location `%s' "
+						"Failed to access default script location '%s' "
 						"(temporary failure)",
 						set_default);
 					break;
 				default:
 					e_error(svinst->event, "storage: "
-						"Failed to access default script location `%s'",
+						"Failed to access default script location '%s'",
 						set_default);
 					break;
 				}
@@ -686,7 +686,7 @@ sieve_storage_get_script_direct(struct sieve_storage *storage, const char *name,
 	if (name != NULL && !sieve_script_name_is_valid(name)) {
 		sieve_storage_set_error(storage,
 			SIEVE_ERROR_BAD_PARAMS,
-			"Invalid script name `%s'.",
+			"Invalid script name '%s'.",
 			str_sanitize(name, 80));
 		if (error_r != NULL)
 			*error_r = storage->error_code;
@@ -1050,7 +1050,7 @@ sieve_storage_save_create_event(struct sieve_storage *storage,
 		event_set_append_log_prefix(event, "save: ");
 	} else {
 		event_set_append_log_prefix(
-			event, t_strdup_printf("script `%s': save: ",
+			event, t_strdup_printf("script '%s': save: ",
 					       scriptname));
 	}
 
@@ -1087,7 +1087,7 @@ sieve_storage_save_init(struct sieve_storage *storage, const char *scriptname,
 		if (!sieve_script_name_is_valid(scriptname)) {
 			sieve_storage_set_error(storage,
 				SIEVE_ERROR_BAD_PARAMS,
-				"Invalid Sieve script name `%s'.",
+				"Invalid Sieve script name '%s'.",
 				str_sanitize(scriptname, 80));
 			return NULL;
 		}
@@ -1260,7 +1260,7 @@ int sieve_storage_save_commit(struct sieve_storage_save_context **_sctx)
 
 		if (ret < 0) {
 			e_error(sctx->event,
-				"Failed to implicitly activate script `%s' "
+				"Failed to implicitly activate script '%s' "
 				"while replacing the default active script",
 				scriptname);
 		}
diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c
index c174479ea..63d5103ba 100644
--- a/src/lib-sieve/sieve-validator.c
+++ b/src/lib-sieve/sieve-validator.c
@@ -615,7 +615,7 @@ bool sieve_validator_extension_load(struct sieve_validator *valdtr,
 					sieve_command_type_name(cmd)));
 		sieve_argument_validate_error(
 			valdtr, ext_arg,
-			"%sfailed to load Sieve capability `%s': "
+			"%sfailed to load Sieve capability '%s': "
 			"its use is restricted to global scripts",
 			cmd_prefix, sieve_extension_name(ext));
 		return FALSE;
@@ -641,7 +641,7 @@ bool sieve_validator_extension_load(struct sieve_validator *valdtr,
 					sieve_command_type_name(cmd)));
 		sieve_argument_validate_error(
 			valdtr, ext_arg,
-			"%sfailed to load Sieve capability `%s'",
+			"%sfailed to load Sieve capability '%s'",
 			cmd_prefix, sieve_extension_name(ext));
 		return FALSE;
 	}
@@ -690,7 +690,7 @@ sieve_validator_extension_load_by_name(struct sieve_validator *valdtr,
 		if (core_test || core_command) {
 			sieve_argument_validate_error(
 				valdtr, ext_arg,
-				"%s %s: `%s' is not known as a Sieve capability, "
+				"%s %s: '%s' is not known as a Sieve capability, "
 				"but it is known as a Sieve %s that is always available",
 				sieve_command_identifier(cmd),
 				sieve_command_type_name(cmd),
@@ -699,7 +699,7 @@ sieve_validator_extension_load_by_name(struct sieve_validator *valdtr,
 		} else {
 			sieve_argument_validate_error(
 				valdtr, ext_arg,
-				"%s %s: unknown Sieve capability `%s'",
+				"%s %s: unknown Sieve capability '%s'",
 				sieve_command_identifier(cmd),
 				sieve_command_type_name(cmd),
 				str_sanitize(ext_name, 128));
diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index 957925eb7..9c09c60fd 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -328,7 +328,7 @@ sieve_compile(struct sieve_instance *svinst, const char *script_location,
 	sbin = sieve_compile_script(script, ehandler, flags, error_r);
 	if (sbin != NULL) {
 		e_debug(svinst->event,
-			"Script `%s' from %s successfully compiled",
+			"Script '%s' from %s successfully compiled",
 			sieve_script_name(script),
 			sieve_script_location(script));
 	}
@@ -420,7 +420,7 @@ sieve_open_script_real(struct sieve_script *script,
 			return NULL;
 
 		e_debug(svinst->event,
-			"Script `%s' from %s successfully compiled",
+			"Script '%s' from %s successfully compiled",
 			sieve_script_name(script),
 			sieve_script_location(script));
 
@@ -810,7 +810,7 @@ bool sieve_multiscript_run(struct sieve_multiscript *mscript,
 		return FALSE;
 	}
 
-	e_debug(mscript->event, "Run script `%s'", sieve_binary_source(sbin));
+	e_debug(mscript->event, "Run script '%s'", sieve_binary_source(sbin));
 
 	/* Run the script */
 	mscript->exec_env.flags = flags;
@@ -858,7 +858,7 @@ void sieve_multiscript_run_discard(struct sieve_multiscript *mscript,
 	}
 	i_assert(!mscript->discard_handled);
 
-	e_debug(mscript->event, "Run discard script `%s'",
+	e_debug(mscript->event, "Run discard script '%s'",
 		sieve_binary_source(sbin));
 
 	sieve_result_set_keep_action(mscript->result, NULL, &act_store);
diff --git a/src/lib-sieve/storage/dict/sieve-dict-script.c b/src/lib-sieve/storage/dict/sieve-dict-script.c
index 2aae20cd3..ea20e782d 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-script.c
+++ b/src/lib-sieve/storage/dict/sieve-dict-script.c
@@ -90,9 +90,9 @@ sieve_dict_script_open(struct sieve_script *script, enum sieve_error *error_r)
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 		} else {
 			e_debug(script->event,
-				"Script `%s' not found at path %s", name, path);
+				"Script '%s' not found at path %s", name, path);
 			sieve_script_set_error(script, SIEVE_ERROR_NOT_FOUND,
-					       "Sieve script `%s' not found",
+					       "Sieve script '%s' not found",
 					       name);
 			*error_r = SIEVE_ERROR_NOT_FOUND;
 		}
@@ -128,12 +128,12 @@ sieve_dict_script_get_stream(struct sieve_script *script,
 	if (ret <= 0) {
 		if (ret < 0) {
 			sieve_script_set_critical(script,
-				"Failed to lookup data with id `%s' "
-				"for script `%s' from path %s: %s",
+				"Failed to lookup data with id '%s' "
+				"for script '%s' from path %s: %s",
 				dscript->data_id, name, path, error);
 		} else {
 			sieve_script_set_critical(script,
-				"Data with id `%s' for script `%s' not found at path %s",
+				"Data with id '%s' for script '%s' not found at path %s",
 				dscript->data_id, name, path);
 		}
 		*error_r = SIEVE_ERROR_TEMP_FAILURE;
@@ -160,15 +160,15 @@ sieve_dict_script_binary_read_metadata(struct sieve_script *script,
 
 	if (!sieve_binary_read_string(sblock, offset, &data_id)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s'",
+			"Binary '%s' has invalid metadata for script '%s'",
 			sieve_binary_path(sbin), sieve_script_location(script));
 		return -1;
 	}
 	i_assert(dscript->data_id != NULL);
 	if (strcmp(str_c(data_id), dscript->data_id) != 0) {
 		e_debug(script->event,
-			"Binary `%s' reports different data ID for script `%s' "
-			"(`%s' rather than `%s')",
+			"Binary '%s' reports different data ID for script '%s' "
+			"('%s' rather than '%s')",
 			sieve_binary_path(sbin), sieve_script_location(script),
 			str_c(data_id), dscript->data_id);
 		return 0;
diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.c b/src/lib-sieve/storage/dict/sieve-dict-storage.c
index 80b11da64..4ac82cfd1 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-storage.c
+++ b/src/lib-sieve/storage/dict/sieve-dict-storage.c
@@ -44,7 +44,7 @@ sieve_dict_storage_init(struct sieve_storage *storage,
 				username = option+5;
 			} else {
 				sieve_storage_set_critical(
-					storage, "Invalid option `%s'", option);
+					storage, "Invalid option '%s'", option);
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				return -1;
 			}
@@ -100,7 +100,7 @@ sieve_dict_storage_get_dict(struct sieve_dict_storage *dstorage,
 				       &dstorage->dict, &error);
 		if (ret < 0) {
 			sieve_storage_set_critical(storage,
-				"Failed to initialize dict with data `%s' for user `%s': %s",
+				"Failed to initialize dict with data '%s' for user '%s': %s",
 				dstorage->uri, dstorage->username, error);
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			return -1;
diff --git a/src/lib-sieve/storage/file/sieve-file-script.c b/src/lib-sieve/storage/file/sieve-file-script.c
index fdb16746f..a427b254e 100644
--- a/src/lib-sieve/storage/file/sieve-file-script.c
+++ b/src/lib-sieve/storage/file/sieve-file-script.c
@@ -67,9 +67,9 @@ sieve_file_script_handle_error(struct sieve_file_script *fscript,
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			break;
 		}
-		e_debug(script->event, "File `%s' not found", abspath);
+		e_debug(script->event, "File '%s' not found", abspath);
 		sieve_script_set_error(script, SIEVE_ERROR_NOT_FOUND,
-				       "Sieve script `%s' not found", name);
+				       "Sieve script '%s' not found", name);
 		*error_r = SIEVE_ERROR_NOT_FOUND;
 		break;
 	case EACCES:
@@ -120,7 +120,7 @@ sieve_file_script_init_from_filename(struct sieve_file_storage *fstorage,
 		if (strcmp(filename, fstorage->active_fname) == 0) {
 			sieve_storage_set_error(
 				storage, SIEVE_ERROR_NOT_FOUND,
-				"Script `%s' does not exist.", scriptname);
+				"Script '%s' does not exist.", scriptname);
 			return NULL;
 		}
 	}
@@ -455,7 +455,7 @@ sieve_file_script_get_stream(struct sieve_script *script,
 	/* Re-check the file type just to be sure */
 	} else if (!S_ISREG(st.st_mode)) {
 		sieve_script_set_critical(
-			script,	"Sieve script file `%s' is not a regular file",
+			script,	"Sieve script file '%s' is not a regular file",
 			fscript->path);
 		*error_r = SIEVE_ERROR_TEMP_FAILURE;
 		result = NULL;
@@ -507,8 +507,8 @@ sieve_file_script_binary_read_metadata(struct sieve_script *script,
 	     ST_MTIME_NSEC(*bstat) <= ST_MTIME_NSEC(*sstat))) {
 		if (svinst->debug) {
 			e_debug(script->event,
-				"Sieve binary `%s' is not newer "
-				"than the Sieve script `%s' (%s.%lu <= %s.%lu)",
+				"Sieve binary '%s' is not newer "
+				"than the Sieve script '%s' (%s.%lu <= %s.%lu)",
 				sieve_binary_path(sbin),
 				sieve_script_location(script),
 				t_strflocaltime("%Y-%m-%d %H:%M:%S",
@@ -600,7 +600,7 @@ static int sieve_file_storage_script_delete(struct sieve_script *script)
 		} else {
 			sieve_script_set_critical(
 				script,
-				"Performing unlink() failed on sieve file `%s': %m",
+				"Performing unlink() failed on sieve file '%s': %m",
 				fscript->path);
 		}
 	}
diff --git a/src/lib-sieve/storage/file/sieve-file-storage-active.c b/src/lib-sieve/storage/file/sieve-file-storage-active.c
index 7e8f6ab9d..4509e427e 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage-active.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage-active.c
@@ -262,7 +262,7 @@ sieve_file_storage_active_script_open(struct sieve_storage *storage)
 			if (storage->error_code != SIEVE_ERROR_NOT_FOUND) {
 				sieve_storage_set_critical(
 					storage,
-					"Failed to open active path `%s' as regular file: %s",
+					"Failed to open active path '%s' as regular file: %s",
 					fstorage->active_path, storage->error);
 			}
 			return NULL;
diff --git a/src/lib-sieve/storage/file/sieve-file-storage-save.c b/src/lib-sieve/storage/file/sieve-file-storage-save.c
index ded73f487..94bbd260c 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage-save.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage-save.c
@@ -238,7 +238,7 @@ int sieve_file_storage_save_init(struct sieve_storage_save_context *sctx,
 					    scriptname)) {
 				sieve_storage_set_error(
 					storage, SIEVE_ERROR_BAD_PARAMS,
-					"Script name `%s' is reserved for internal use.",
+					"Script name '%s' is reserved for internal use.",
 					scriptname);
 				return -1;
 			}
@@ -367,14 +367,14 @@ sieve_file_storage_save_get_tempscript(struct sieve_storage_save_context *sctx)
 		if (error == SIEVE_ERROR_NOT_FOUND) {
 			sieve_storage_set_critical(
 				sctx->storage, "save: "
-				"Temporary script file `%s' got lost, "
+				"Temporary script file '%s' got lost, "
 				"which should not happen "
 				"(possibly deleted externally).",
 				fsctx->tmp_path);
 		} else {
 			sieve_storage_set_critical(
 				sctx->storage, "save: "
-				"Failed to open temporary script file `%s'",
+				"Failed to open temporary script file '%s'",
 				fsctx->tmp_path);
 		}
 		return NULL;
diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c
index b09cc54a5..3f470c10c 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage.c
@@ -73,7 +73,7 @@ sieve_file_storage_stat(struct sieve_file_storage *fstorage, const char *path,
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			break;
 		}
-		e_debug(storage->event, "Storage path `%s' not found", abspath);
+		e_debug(storage->event, "Storage path '%s' not found", abspath);
 		sieve_storage_set_internal_error(storage); // should be overriden
 		*error_r = SIEVE_ERROR_NOT_FOUND;
 		break;
@@ -257,7 +257,7 @@ sieve_file_storage_get_full_path(struct sieve_file_storage *fstorage,
 		} else {
 			sieve_storage_set_critical(
 				storage,
-				"Sieve storage path `%s' is relative to home directory, "
+				"Sieve storage path '%s' is relative to home directory, "
 				"but home directory is not available.", path);
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			return -1;
@@ -292,7 +292,7 @@ sieve_file_storage_get_full_active_path(struct sieve_file_storage *fstorage,
 		} else {
 			sieve_storage_set_critical(
 				storage,
-				"Sieve storage active script path `%s' is relative to home directory, "
+				"Sieve storage active script path '%s' is relative to home directory, "
 				"but home directory is not available.", path);
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			return -1;
@@ -522,7 +522,7 @@ sieve_file_storage_init(struct sieve_storage *storage,
 				active_path = value;
 			} else {
 				sieve_storage_set_critical(
-					storage, "Invalid option `%s'", option);
+					storage, "Invalid option '%s'", option);
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				return -1;
 			}
@@ -560,8 +560,8 @@ sieve_file_storage_init(struct sieve_storage *storage,
 				if (!S_ISREG(fstorage->lnk_st.st_mode))
 					return -1;
 				e_debug(storage->event,
-					"Sieve storage path `%s' not found, "
-					"but the active script `%s' is a regular file, "
+					"Sieve storage path '%s' not found, "
+					"but the active script '%s' is a regular file, "
 					"so this is used for backwards compatibility.",
 					storage_path, active_path);
 				storage_path = NULL;
@@ -572,15 +572,15 @@ sieve_file_storage_init(struct sieve_storage *storage,
 			if (!S_ISDIR(fstorage->st.st_mode)) {
 				if ((storage->flags & SIEVE_STORAGE_FLAG_READWRITE) != 0) {
 					sieve_storage_set_critical(storage,
-						"Sieve storage path `%s' is not a directory, "
+						"Sieve storage path '%s' is not a directory, "
 						"but it is to be opened for write access", storage_path);
 					*error_r = SIEVE_ERROR_TEMP_FAILURE;
 					return -1;
 				}
 				if (active_path != NULL && *active_path != '\0') {
 					e_warning(storage->event,
-						  "Explicitly specified active script path `%s' is ignored; "
-						  "storage path `%s' is not a directory",
+						  "Explicitly specified active script path '%s' is ignored; "
+						  "storage path '%s' is not a directory",
 						  active_path, storage_path);
 				}
 				active_path = storage_path;
@@ -629,7 +629,7 @@ sieve_file_storage_autodetect(struct sieve_file_storage *fstorage,
 		if (access("/sieve", mode) == 0) {
 			*storage_path_r = "/sieve";
 			e_debug(storage->event,
-				"Directory `/sieve' exists, assuming chroot");
+				"Directory '/sieve' exists, assuming chroot");
 		} else {
 			*storage_path_r = NULL;
 		}
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index 9abbb0564..99c3a45cd 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -1103,7 +1103,7 @@ sieve_ldap_db_get_script_modattr(struct ldap_connection *conn,
 
 			if (vals[1] != NULL) {
 				e_warning(storage->event, "db: "
-					  "Search returned more than one Sieve modified attribute `%s'; "
+					  "Search returned more than one Sieve modified attribute '%s'; "
 					  "using only the first one.",
 					  set->sieve_ldap_mod_attr);
 			}
@@ -1143,7 +1143,7 @@ sieve_ldap_db_get_script(struct ldap_connection *conn, LDAPMessage *entry,
 
 			if (vals[1] != NULL) {
 				e_warning(storage->event, "db: "
-					  "Search returned more than one Sieve script attribute `%s'; "
+					  "Search returned more than one Sieve script attribute '%s'; "
 					  "using only the first one.",
 					  set->sieve_ldap_script_attr);
 			}
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-script.c b/src/lib-sieve/storage/ldap/sieve-ldap-script.c
index 5916b2ed7..1df215410 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-script.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-script.c
@@ -131,8 +131,8 @@ sieve_ldap_script_binary_read_metadata(struct sieve_script *script,
 	if (bmtime <= lstorage->set_mtime) {
 		if (svinst->debug) {
 			e_debug(script->event,
-				"Sieve binary `%s' is not newer "
-				"than the LDAP configuration `%s' (%s <= %s)",
+				"Sieve binary '%s' is not newer "
+				"than the LDAP configuration '%s' (%s <= %s)",
 				sieve_binary_path(sbin), lstorage->config_file,
 				t_strflocaltime("%Y-%m-%d %H:%M:%S", bmtime),
 				t_strflocaltime("%Y-%m-%d %H:%M:%S",
@@ -148,8 +148,8 @@ sieve_ldap_script_binary_read_metadata(struct sieve_script *script,
 	/* If modattr not found, recompile always */
 	if (lscript->modattr == NULL || *lscript->modattr == '\0') {
 		e_error(script->event,
-			"LDAP entry for script `%s' "
-			"has no modified attribute `%s'",
+			"LDAP entry for script '%s' "
+			"has no modified attribute '%s'",
 			sieve_script_location(script),
 			lstorage->set.sieve_ldap_mod_attr);
 		return 0;
@@ -158,7 +158,7 @@ sieve_ldap_script_binary_read_metadata(struct sieve_script *script,
 	/* Compare DN in binary and from search result */
 	if (!sieve_binary_read_string(sblock, offset, &dn)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s': "
+			"Binary '%s' has invalid metadata for script '%s': "
 			"Invalid DN",
 			sieve_binary_path(sbin), sieve_script_location(script));
 		return -1;
@@ -166,8 +166,8 @@ sieve_ldap_script_binary_read_metadata(struct sieve_script *script,
 	i_assert(lscript->dn != NULL);
 	if (strcmp(str_c(dn), lscript->dn) != 0) {
 		e_debug(script->event,
-			"Binary `%s' reports different LDAP DN for script `%s' "
-			"(`%s' rather than `%s')",
+			"Binary '%s' reports different LDAP DN for script '%s' "
+			"('%s' rather than '%s')",
 			sieve_binary_path(sbin), sieve_script_location(script),
 			str_c(dn), lscript->dn);
 		return 0;
@@ -176,15 +176,15 @@ sieve_ldap_script_binary_read_metadata(struct sieve_script *script,
 	/* Compare modattr in binary and from search result */
 	if (!sieve_binary_read_string(sblock, offset, &modattr)) {
 		e_error(script->event,
-			"Binary `%s' has invalid metadata for script `%s': "
+			"Binary '%s' has invalid metadata for script '%s': "
 			"Invalid modified attribute",
 			sieve_binary_path(sbin), sieve_script_location(script));
 		return -1;
 	}
 	if (strcmp(str_c(modattr), lscript->modattr) != 0) {
 		e_debug(script->event,
-			"Binary `%s' reports different modified attribute content "
-			"for script `%s' (`%s' rather than `%s')",
+			"Binary '%s' reports different modified attribute content "
+			"for script '%s' ('%s' rather than '%s')",
 			sieve_binary_path(sbin), sieve_script_location(script),
 			str_c(modattr), lscript->modattr);
 		return 0;
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
index 0e0e7c41b..addec4357 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
@@ -107,21 +107,21 @@ int sieve_ldap_storage_read_settings(struct sieve_ldap_storage *lstorage,
 	if (!settings_read_nosection(config_path, parse_setting, lstorage,
 				     &error)) {
 		sieve_storage_set_critical(
-			storage, "Failed to read LDAP storage config `%s': %s",
+			storage, "Failed to read LDAP storage config '%s': %s",
 			config_path, error);
 		return -1;
 	}
 
 	if (lstorage->set.base == NULL) {
 		sieve_storage_set_critical(
-			storage, "Invalid LDAP storage config `%s': "
+			storage, "Invalid LDAP storage config '%s': "
 			"No search base given", config_path);
 		return -1;
 	}
 
 	if (lstorage->set.uris == NULL && lstorage->set.hosts == NULL) {
 		sieve_storage_set_critical(
-			storage, "Invalid LDAP storage config `%s': "
+			storage, "Invalid LDAP storage config '%s': "
 			"No uris or hosts set", config_path);
 		return -1;
 	}
@@ -130,7 +130,7 @@ int sieve_ldap_storage_read_settings(struct sieve_ldap_storage *lstorage,
 		str = getenv("LDAPRC");
 		if (str != NULL && strcmp(str, lstorage->set.ldaprc_path) != 0) {
 			sieve_storage_set_critical(
-				storage, "Invalid LDAP storage config `%s': "
+				storage, "Invalid LDAP storage config '%s': "
 				"Multiple different ldaprc_path settings not allowed "
 				"(%s and %s)", config_path, str,
 				lstorage->set.ldaprc_path);
@@ -142,16 +142,16 @@ int sieve_ldap_storage_read_settings(struct sieve_ldap_storage *lstorage,
 	if (ldap_deref_from_str(lstorage->set.deref,
 				&lstorage->set.ldap_deref) < 0) {
 		sieve_storage_set_critical(
-			storage, "Invalid LDAP storage config `%s': "
-			"Invalid deref option `%s'",
+			storage, "Invalid LDAP storage config '%s': "
+			"Invalid deref option '%s'",
 			config_path, lstorage->set.deref);;
 	}
 
 	if (ldap_scope_from_str(lstorage->set.scope,
 				&lstorage->set.ldap_scope) < 0) {
 		sieve_storage_set_critical(
-			storage, "Invalid LDAP storage config `%s': "
-			"Invalid scope option `%s'",
+			storage, "Invalid LDAP storage config '%s': "
+			"Invalid scope option '%s'",
 			config_path, lstorage->set.scope);;
 	}
 
@@ -161,8 +161,8 @@ int sieve_ldap_storage_read_settings(struct sieve_ldap_storage *lstorage,
 		lstorage->set.tls_require_cert,
 		&lstorage->set.ldap_tls_require_cert) < 0) {
 		sieve_storage_set_critical(
-			storage, "Invalid LDAP storage config `%s': "
-			"Invalid tls_require_cert option `%s'",
+			storage, "Invalid LDAP storage config '%s': "
+			"Invalid tls_require_cert option '%s'",
 			config_path, lstorage->set.tls_require_cert);
 	}
 #endif
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
index 3387113c5..6da5fe9b1 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
@@ -57,7 +57,7 @@ sieve_ldap_storage_init(struct sieve_storage *storage,
 				username = value;
 			} else {
 				sieve_storage_set_critical(
-					storage, "Invalid option `%s'", option);
+					storage, "Invalid option '%s'", option);
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				return -1;
 			}
diff --git a/src/lib-sieve/tst-exists.c b/src/lib-sieve/tst-exists.c
index 063799f74..076556220 100644
--- a/src/lib-sieve/tst-exists.c
+++ b/src/lib-sieve/tst-exists.c
@@ -168,7 +168,7 @@ tst_exists_operation_execute(const struct sieve_runtime_env *renv,
 
 		sieve_runtime_trace(
 			renv, SIEVE_TRLVL_MATCHING,
-			"header `%s' %s", str_sanitize(str_c(hdr_item), 80),
+			"header '%s' %s", str_sanitize(str_c(hdr_item), 80),
 			(matched ? "exists" : "is missing"));
 	}
 
diff --git a/src/lib-sieve/util/edit-mail.c b/src/lib-sieve/util/edit-mail.c
index 8f61e0164..eae775a70 100644
--- a/src/lib-sieve/util/edit-mail.c
+++ b/src/lib-sieve/util/edit-mail.c
@@ -771,7 +771,7 @@ static int edit_mail_headers_parse(struct edit_mail *edmail)
 			/* Skip bad headers */
 			if (hdr->name_len == 0)
 				continue;
-			/* We deny the existence of any `Content-Length:'
+			/* We deny the existence of any 'Content-Length:'
 			   header. This header is non-standard and it can wreak
 			   havok when the message is modified.
 			 */
diff --git a/src/managesieve-login/managesieve-proxy.c b/src/managesieve-login/managesieve-proxy.c
index fc3220672..4f706e224 100644
--- a/src/managesieve-login/managesieve-proxy.c
+++ b/src/managesieve-login/managesieve-proxy.c
@@ -205,7 +205,7 @@ proxy_input_auth_challenge(struct managesieve_client *client, const char *line,
 		/* Do not accept faulty server */
 		const char *reason = t_strdup_printf(
 			"Protocol parse error(%d) int SASL challenge line: %s "
-			"(line=`%s')", ret, error_str, line);
+			"(line='%s')", ret, error_str, line);
 		login_proxy_failed(client->common.login_proxy,
 			login_proxy_get_event(client->common.login_proxy),
 			LOGIN_PROXY_FAILURE_TYPE_PROTOCOL, reason);
@@ -392,7 +392,7 @@ proxy_input_capability(struct managesieve_client *client, const char *line,
 		/* Do not accept faulty server */
 		const char *reason = t_strdup_printf(
 			"Protocol parse error(%d) in capability/greeting line: %s "
-			"(line=`%s')", ret, error_str, line);
+			"(line='%s')", ret, error_str, line);
 		login_proxy_failed(client->common.login_proxy,
 			login_proxy_get_event(client->common.login_proxy),
 			LOGIN_PROXY_FAILURE_TYPE_PROTOCOL, reason);
diff --git a/src/managesieve/cmd-deletescript.c b/src/managesieve/cmd-deletescript.c
index a8be5c93b..d7a8ef094 100644
--- a/src/managesieve/cmd-deletescript.c
+++ b/src/managesieve/cmd-deletescript.c
@@ -26,14 +26,14 @@ bool cmd_deletescript(struct client_command_context *cmd)
 	script = sieve_storage_open_script(storage, scriptname, NULL);
 	if (script == NULL || sieve_script_delete(script, FALSE) < 0) {
 		client_command_storage_error(
-			cmd, "Failed to delete script `%s'", scriptname);
+			cmd, "Failed to delete script '%s'", scriptname);
 		sieve_script_unref(&script);
 		return TRUE;
 	}
 
 	struct event_passthrough *e =
 		client_command_create_finish_event(cmd);
-	e_debug(e->event(), "Deleted script `%s'", scriptname);
+	e_debug(e->event(), "Deleted script '%s'", scriptname);
 
 	client->deleted_count++;
 	client_send_ok(client, "Deletescript completed.");
diff --git a/src/managesieve/cmd-getscript.c b/src/managesieve/cmd-getscript.c
index a0d182114..17f109390 100644
--- a/src/managesieve/cmd-getscript.c
+++ b/src/managesieve/cmd-getscript.c
@@ -40,7 +40,7 @@ static bool cmd_getscript_finish(struct cmd_getscript_context *ctx)
 		}
 
 		client_command_storage_error(
-			cmd, "Failed to retrieve script `%s'", ctx->scriptname);
+			cmd, "Failed to retrieve script '%s'", ctx->scriptname);
 		return TRUE;
 	}
 
@@ -50,7 +50,7 @@ static bool cmd_getscript_finish(struct cmd_getscript_context *ctx)
 	struct event_passthrough *e =
 		client_command_create_finish_event(cmd)->
 		add_int("script_size", ctx->script_size);
-	e_debug(e->event(), "Retrieved script `%s'", ctx->scriptname);
+	e_debug(e->event(), "Retrieved script '%s'", ctx->scriptname);
 
 	client_send_line(client, "");
 	client_send_ok(client, "Getscript completed.");
@@ -68,7 +68,7 @@ static bool cmd_getscript_continue(struct client_command_context *cmd)
 		    !ctx->failed) {
 			/* Input stream gave less data than expected */
 			sieve_storage_set_critical(
-				ctx->storage, "GETSCRIPT for script `%s' "
+				ctx->storage, "GETSCRIPT for script '%s' "
 				"from %s got too little data: "
 				"%"PRIuUOFF_T" vs %"PRIuUOFF_T,
 				sieve_script_name(ctx->script),
@@ -84,7 +84,7 @@ static bool cmd_getscript_continue(struct client_command_context *cmd)
 		return FALSE;
 	case OSTREAM_SEND_ISTREAM_RESULT_ERROR_INPUT:
 		sieve_storage_set_critical(ctx->storage,
-			"o_stream_send_istream() failed for script `%s' "
+			"o_stream_send_istream() failed for script '%s' "
 			"from %s: %s",
 			sieve_script_name(ctx->script),
 			sieve_script_location(ctx->script),
@@ -138,7 +138,7 @@ bool cmd_getscript(struct client_command_context *cmd)
 
 	if (sieve_script_get_size(ctx->script, &ctx->script_size) <= 0) {
 		sieve_storage_set_critical(ctx->storage,
-			"failed to obtain script size for script `%s' from %s",
+			"failed to obtain script size for script '%s' from %s",
 			sieve_script_name(ctx->script),
 			sieve_script_location(ctx->script));
 		ctx->failed = TRUE;
diff --git a/src/managesieve/cmd-havespace.c b/src/managesieve/cmd-havespace.c
index 5af2bb11b..0ba2613ed 100644
--- a/src/managesieve/cmd-havespace.c
+++ b/src/managesieve/cmd-havespace.c
@@ -52,7 +52,7 @@ bool cmd_havespace(struct client_command_context *cmd)
 
 	struct event_passthrough *e =
 		client_command_create_finish_event(cmd);
-	e_debug(e->event(), "Quota is within limits for script `%s' "
+	e_debug(e->event(), "Quota is within limits for script '%s' "
 		"with size %"PRIuUOFF_T, scriptname, size);
 
 	client_send_ok(client, "Putscript would succeed.");
diff --git a/src/managesieve/cmd-putscript.c b/src/managesieve/cmd-putscript.c
index 5484174fa..374d37c72 100644
--- a/src/managesieve/cmd-putscript.c
+++ b/src/managesieve/cmd-putscript.c
@@ -151,7 +151,7 @@ static void cmd_putscript_storage_error(struct cmd_putscript_context *ctx)
 	if (ctx->scriptname == NULL)
 		client_command_storage_error(cmd, "Failed to check script");
 	else {
-		client_command_storage_error(cmd, "Failed to store script `%s'",
+		client_command_storage_error(cmd, "Failed to store script '%s'",
 					     ctx->scriptname);
 	}
 }
@@ -207,7 +207,7 @@ cmd_putscript_finish_script(struct cmd_putscript_context *ctx,
 		}
 
 		action = (ctx->scriptname != NULL ?
-			  t_strdup_printf("store script `%s'",
+			  t_strdup_printf("store script '%s'",
 					  ctx->scriptname) :
 			  "check script");
 
@@ -262,7 +262,7 @@ cmd_putscript_finish_script(struct cmd_putscript_context *ctx,
 			add_int("compile_warnings",
 				sieve_get_warnings(ehandler));
 		if (ctx->scriptname != NULL) {
-			e_debug(e->event(), "Stored script `%s' successfully "
+			e_debug(e->event(), "Stored script '%s' successfully "
 				"(%u warnings)", ctx->scriptname,
 				sieve_get_warnings(ehandler));
 		} else {
diff --git a/src/managesieve/cmd-renamescript.c b/src/managesieve/cmd-renamescript.c
index 4864f3495..5018d12a3 100644
--- a/src/managesieve/cmd-renamescript.c
+++ b/src/managesieve/cmd-renamescript.c
@@ -28,21 +28,21 @@ bool cmd_renamescript(struct client_command_context *cmd)
 	script = sieve_storage_open_script(storage, scriptname, NULL);
 	if (script == NULL) {
 		client_command_storage_error(
-			cmd, "Failed to open script `%s' for rename to `%s'",
+			cmd, "Failed to open script '%s' for rename to '%s'",
 			scriptname, newname);
 		return TRUE;
 	}
 
 	if (sieve_script_rename(script, newname) < 0) {
 		client_command_storage_error(
-			cmd, "Failed to rename script `%s' to `%s'",
+			cmd, "Failed to rename script '%s' to '%s'",
 			scriptname, newname);
 	} else {
 		client->renamed_count++;
 
 		struct event_passthrough *e =
 			client_command_create_finish_event(cmd);
-		e_debug(e->event(), "Renamed script `%s' to `%s'",
+		e_debug(e->event(), "Renamed script '%s' to '%s'",
 			scriptname, newname);
 
 		client_send_ok(client, "Renamescript completed.");
diff --git a/src/managesieve/cmd-setactive.c b/src/managesieve/cmd-setactive.c
index 07844c5e3..b1a86c0af 100644
--- a/src/managesieve/cmd-setactive.c
+++ b/src/managesieve/cmd-setactive.c
@@ -29,7 +29,7 @@ cmd_setactive_activate(struct client_command_context *cmd,
 	script = sieve_storage_open_script(storage, scriptname, NULL);
 	if (script == NULL) {
 		client_command_storage_error(
-			cmd, "Failed to open script `%s' for activation",
+			cmd, "Failed to open script '%s' for activation",
 			scriptname);
 		return;
 	}
@@ -76,13 +76,13 @@ cmd_setactive_activate(struct client_command_context *cmd,
 		ret = sieve_script_activate(script, (time_t)-1);
 		if (ret < 0) {
 			client_command_storage_error(
-				cmd, "Failed to activate script `%s'",
+				cmd, "Failed to activate script '%s'",
 				scriptname);
 		} else {
 			struct event_passthrough *e =
 				client_command_create_finish_event(cmd)->
 				add_int("compile_warnings", warning_count);
-			e_debug(e->event(), "Activated script `%s' "
+			e_debug(e->event(), "Activated script '%s' "
 				" (%u warnings%s)",
 				scriptname, warning_count,
 				(ret == 0 ? ", redundant" : ""));
@@ -104,7 +104,7 @@ cmd_setactive_activate(struct client_command_context *cmd,
 			add_str("error", "Compilation failed")->
 			add_int("compile_errors", error_count)->
 			add_int("compile_warnings", warning_count);
-		e_debug(e->event(), "Failed to activate script `%s': "
+		e_debug(e->event(), "Failed to activate script '%s': "
 			"Compilation failed (%u errors, %u warnings)",
 			scriptname, error_count, warning_count);
 
@@ -113,7 +113,7 @@ cmd_setactive_activate(struct client_command_context *cmd,
 		struct event_passthrough *e =
 			client_command_create_finish_event(cmd)->
 			add_str("error", errormsg);
-		e_debug(e->event(), "Failed to activate script `%s': %s",
+		e_debug(e->event(), "Failed to activate script '%s': %s",
 			scriptname, errormsg);
 
 		client_send_no(client, errormsg);
diff --git a/src/managesieve/managesieve-quota.c b/src/managesieve/managesieve-quota.c
index 01c0e5fbf..b06a8e942 100644
--- a/src/managesieve/managesieve-quota.c
+++ b/src/managesieve/managesieve-quota.c
@@ -55,7 +55,7 @@ bool managesieve_quota_check_all(struct client_command_context *cmd,
 		return TRUE;
 	if (ret < 0) {
 		client_command_storage_error(
-			cmd, "Failed to check quota for script `%s' "
+			cmd, "Failed to check quota for script '%s' "
 			     "(size %zu bytes)", scriptname, size);
 		return FALSE;
 	}
@@ -88,7 +88,7 @@ bool managesieve_quota_check_all(struct client_command_context *cmd,
 		client_command_create_finish_event(cmd)->
 		add_str("error", error_msg);
 	e_debug(e->event(),
-		"Quota check failed for script `%s' (size %zu bytes): %s",
+		"Quota check failed for script '%s' (size %zu bytes): %s",
 		scriptname, size, error_msg);
 
 	client_send_noresp(client, resp_code, error_msg);
diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
index dca1ffc71..0b3874fd6 100644
--- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
@@ -400,7 +400,7 @@ sieve_attribute_set(struct mailbox_transaction_context *t,
 				"(time: %Y-%m-%d %H:%M:%S)",
 				ioloop_time);
 		}
-		e_debug(suser->event, "Assigned value for key `%s' %s",
+		e_debug(suser->event, "Assigned value for key '%s' %s",
 			key, change);
 
 		/* FIXME: set value len to sieve script size / active name
@@ -584,11 +584,11 @@ sieve_attribute_get(struct mailbox *box,
 
 			if (ret > 0) {
 				e_debug(user->event,
-					"Retrieved value for key `%s'%s",
+					"Retrieved value for key '%s'%s",
 					key, timestamp);
 			} else {
 				e_debug(suser->event,
-					"Value missing for key `%s'%s",
+					"Value missing for key '%s'%s",
 					key, timestamp);
 			}
 		}
diff --git a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
index 2d8847b41..6965b511b 100644
--- a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
@@ -368,7 +368,7 @@ bool cmd_filter_sieve(struct client_command_context *cmd)
 		type = IMAP_FILTER_SIEVE_TYPE_SCRIPT;
 	} else {
 		client_send_command_error(cmd, t_strdup_printf(
-			"Unknown SIEVE filter sub-type `%s'",
+			"Unknown SIEVE filter sub-type '%s'",
 			sieve_type));
 		return TRUE;
 	}
diff --git a/src/plugins/imap-filter-sieve/cmd-filter.c b/src/plugins/imap-filter-sieve/cmd-filter.c
index 24580477b..7b280ecad 100644
--- a/src/plugins/imap-filter-sieve/cmd-filter.c
+++ b/src/plugins/imap-filter-sieve/cmd-filter.c
@@ -26,7 +26,7 @@ cmd_filter_parse_spec(struct imap_filter_context *ctx,
 	}
 	if (strcasecmp(filter_type, "SIEVE") != 0) {
 		client_send_command_error(cmd, t_strdup_printf(
-			"Unknown filter type `%s'", filter_type));
+			"Unknown filter type '%s'", filter_type));
 		return TRUE;
 	}
 
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index 1d9ccbe05..bdfa1f9dc 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -233,7 +233,7 @@ imap_filter_sieve_get_global_storage(struct imap_filter_sieve_context *sctx,
 	if (location == NULL) {
 		e_info(sieve_get_event(svinst),
 		       "include: sieve_global is unconfigured; "
-		       "include of `:global' script is therefore not possible");
+		       "include of ':global' script is therefore not possible");
 		*error_code_r = MAIL_ERROR_NOTFOUND;
 		*error_r = "No global Sieve scripts available";
 		return -1;
@@ -375,13 +375,13 @@ imap_sieve_filter_open_script(struct imap_filter_sieve_context *sctx,
 		/* Script not found */
 		case SIEVE_ERROR_NOT_FOUND:
 			e_debug(sieve_get_event(svinst),
-				"Script `%s' is missing for %s",
+				"Script '%s' is missing for %s",
 				sieve_script_location(script), compile_name);
 			break;
 		/* Temporary failure */
 		case SIEVE_ERROR_TEMP_FAILURE:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(temporary failure)",
 				sieve_script_location(script), compile_name);
 			break;
@@ -390,20 +390,20 @@ imap_sieve_filter_open_script(struct imap_filter_sieve_context *sctx,
 			if (script == sctx->user_script)
 				break;
 			e_error(sieve_get_event(svinst),
-				"Failed to %s script `%s'",
+				"Failed to %s script '%s'",
 				compile_name, sieve_script_location(script));
 			break;
 		/* Cumulative resource limit exceeded */
 		case SIEVE_ERROR_RESOURCE_LIMIT:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(cumulative resource limit exceeded)",
 				sieve_script_location(script), compile_name);
 			break;
 		/* Something else */
 		default:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s",
+				"Failed to open script '%s' for %s",
 				sieve_script_location(script), compile_name);
 			break;
 		}
@@ -823,7 +823,7 @@ imap_sieve_filter_run_scripts(struct imap_filter_sieve_context *sctx,
 
 		if (sbin == NULL) {
 			e_debug(sieve_get_event(svinst),
-				"Skipping script from `%s'",
+				"Skipping script from '%s'",
 				sieve_script_location(script));
 			continue;
 		}
@@ -850,7 +850,7 @@ imap_sieve_filter_run_scripts(struct imap_filter_sieve_context *sctx,
 
 		/* Execute */
 		e_debug(sieve_get_event(svinst),
-			"Executing script from `%s'",
+			"Executing script from '%s'",
 			sieve_get_source(sbin));
 		more = sieve_multiscript_run(mscript,
 			sbin, ehandler, ehandler, exflags);
@@ -1019,7 +1019,7 @@ imap_sieve_filter_get_msgdata(struct imap_filter_sieve_context *sctx,
 		else if (smtp_address_parse_username(sctx->pool, user->username,
 						     &user_addr, &error) < 0) {
 			e_warning(sieve_get_event(svinst),
-				  "Cannot obtain SMTP address from username `%s': %s",
+				  "Cannot obtain SMTP address from username '%s': %s",
 				  user->username, error);
 		} else {
 			if (user_addr->domain == NULL)
diff --git a/src/plugins/imapsieve/imap-sieve-storage.c b/src/plugins/imapsieve/imap-sieve-storage.c
index 63f52bece..2f03e73c2 100644
--- a/src/plugins/imapsieve/imap-sieve-storage.c
+++ b/src/plugins/imapsieve/imap-sieve-storage.c
@@ -153,7 +153,7 @@ imap_sieve_mailbox_get_script_real(struct mailbox *box,
 	if (ret > 0) {
 		e_debug(isbox->event, "Mailbox attribute /shared/"
 			MAILBOX_ATTRIBUTE_IMAPSIEVE_SCRIPT" "
-			"points to Sieve script `%s'", value.value);
+			"points to Sieve script '%s'", value.value);
 	/* If not found, get the name of the Sieve script from server METADATA.
 	 */
 	} else {
@@ -190,7 +190,7 @@ imap_sieve_mailbox_get_script_real(struct mailbox *box,
 
 		e_debug(isbox->event, "Server attribute /shared/"
 			MAIL_SERVER_ATTRIBUTE_IMAPSIEVE_SCRIPT" "
-			"points to Sieve script `%s'", value.value);
+			"points to Sieve script '%s'", value.value);
 	}
 
 	*script_name_r = value.value;
@@ -893,7 +893,7 @@ static void imap_sieve_mailbox_rules_init(struct mail_user *user)
 		     !rule_pattern_has_wildcards(mbrule->from)) &&
 		    hash_table_lookup(isuser->mbox_rules, mbrule) != NULL) {
 			e_warning(isuser->event,
-				  "Duplicate static mailbox rule [%u] for mailbox `%s' "
+				  "Duplicate static mailbox rule [%u] for mailbox '%s' "
 				  "(skipped)", i, mbrule->mailbox);
 			continue;
 		}
@@ -913,7 +913,7 @@ static void imap_sieve_mailbox_rules_init(struct mail_user *user)
 			}
 			if (*cause != NULL) {
 				e_warning(isuser->event,
-					  "Static mailbox rule [%u] has invalid event cause `%s' "
+					  "Static mailbox rule [%u] has invalid event cause '%s' "
 					  "(skipped)", i, *cause);
 				continue;
 			}
@@ -935,17 +935,17 @@ static void imap_sieve_mailbox_rules_init(struct mail_user *user)
 		mbrule->copy_source_after = p_strdup_empty(user->pool, setval);
 
 		e_debug(isuser->event, "Static mailbox rule [%u]: "
-			"mailbox=`%s' from=`%s' causes=(%s) => "
+			"mailbox='%s' from='%s' causes=(%s) => "
 			"before=%s after=%s%s",
 			mbrule->index, mbrule->mailbox,
 			(mbrule->from == NULL ? "*" : mbrule->from),
 			t_strarray_join(mbrule->causes, " "),
 			(mbrule->before == NULL ? "(none)" :
-			 t_strconcat("`", mbrule->before, "'", NULL)),
+			 t_strconcat("'", mbrule->before, "'", NULL)),
 			(mbrule->after == NULL ? "(none)" :
-			 t_strconcat("`", mbrule->after, "'", NULL)),
+			 t_strconcat("'", mbrule->after, "'", NULL)),
 			(mbrule->copy_source_after == NULL ? "":
-			 t_strconcat(" copy_source_after=`",
+			 t_strconcat(" copy_source_after='",
 				     mbrule->copy_source_after, "'", NULL)));
 
 		if ((strcmp(mbrule->mailbox, "*") == 0 ||
diff --git a/src/plugins/imapsieve/imap-sieve.c b/src/plugins/imapsieve/imap-sieve.c
index fa82b1a0f..683491b75 100644
--- a/src/plugins/imapsieve/imap-sieve.c
+++ b/src/plugins/imapsieve/imap-sieve.c
@@ -559,13 +559,13 @@ imap_sieve_run_open_script(struct imap_sieve_run *isrun,
 		/* Script not found */
 		case SIEVE_ERROR_NOT_FOUND:
 			e_debug(sieve_get_event(svinst),
-				"Script `%s' is missing for %s",
+				"Script '%s' is missing for %s",
 				sieve_script_location(script), compile_name);
 			break;
 		/* Temporary failure */
 		case SIEVE_ERROR_TEMP_FAILURE:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(temporary failure)",
 				sieve_script_location(script), compile_name);
 			break;
@@ -574,27 +574,27 @@ imap_sieve_run_open_script(struct imap_sieve_run *isrun,
 			if (script == isrun->user_script &&
 			   isrun->userlog != NULL ) {
 				e_info(sieve_get_event(svinst),
-				       "Failed to %s script `%s' "
-				       "(view user logfile `%s' for more information)",
+				       "Failed to %s script '%s' "
+				       "(view user logfile '%s' for more information)",
 				       compile_name, sieve_script_location(script),
 				       isrun->userlog);
 				break;
 			}
 			e_error(sieve_get_event(svinst),
-				"Failed to %s script `%s'",
+				"Failed to %s script '%s'",
 				compile_name, sieve_script_location(script));
 			break;
 		/* Cumulative resource limit exceeded */
 		case SIEVE_ERROR_RESOURCE_LIMIT:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(cumulative resource limit exceeded)",
 				sieve_script_location(script), compile_name);
 			break;
 		/* Something else */
 		default:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s",
+				"Failed to open script '%s' for %s",
 				sieve_script_location(script), compile_name);
 			break;
 		}
@@ -744,7 +744,7 @@ imap_sieve_run_scripts(struct imap_sieve_run *isrun,
 		/* Open */
 		if (sbin == NULL) {
 			e_debug(sieve_get_event(svinst),
-				"Opening script %d of %d from `%s'",
+				"Opening script %d of %d from '%s'",
 				i+1, count, sieve_script_location(script));
 
 			/* Already known to fail */
@@ -764,7 +764,7 @@ imap_sieve_run_scripts(struct imap_sieve_run *isrun,
 
 		/* Execute */
 		e_debug(sieve_get_event(svinst),
-			"Executing script from `%s'",
+			"Executing script from '%s'",
 			sieve_get_source(sbin));
 		more = sieve_multiscript_run(mscript, sbin, ehandler, ehandler,
 					     exflags);
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index e6aea20f3..baae819f8 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -301,7 +301,7 @@ lda_sieve_multiscript_get_scripts(struct sieve_instance *svinst,
 				break;
 			case SIEVE_ERROR_TEMP_FAILURE:
 				e_error(sieve_get_event(svinst),
-					"Failed to access %s script from `%s' "
+					"Failed to access %s script from '%s' "
 					"(temporary failure)",
 					label, location);
 				ret = -1;
@@ -332,7 +332,7 @@ lda_sieve_binary_save(struct lda_sieve_run_context *srctx,
 		e_error(sieve_get_event(srctx->svinst),
 			"The LDA Sieve plugin does not have permission "
 			"to save global Sieve script binaries; "
-			"global Sieve scripts like `%s' need to be "
+			"global Sieve scripts like '%s' need to be "
 			"pre-compiled using the sievec tool",
 			sieve_script_location(script));
 	}
@@ -378,14 +378,14 @@ sieve_binary *lda_sieve_open(struct lda_sieve_run_context *srctx,
 		/* Script not found */
 		case SIEVE_ERROR_NOT_FOUND:
 			e_debug(sieve_get_event(svinst),
-				"Script `%s' is missing for %s",
+				"Script '%s' is missing for %s",
 				sieve_script_location(script),
 				compile_name);
 			break;
 		/* Temporary failure */
 		case SIEVE_ERROR_TEMP_FAILURE:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(temporary failure)",
 				sieve_script_location(script), compile_name);
 			break;
@@ -394,28 +394,28 @@ sieve_binary *lda_sieve_open(struct lda_sieve_run_context *srctx,
 			if (script == srctx->user_script &&
 			    srctx->userlog != NULL ) {
 				e_info(sieve_get_event(svinst),
-				       "Failed to %s script `%s' "
-				       "(view user logfile `%s' for more information)",
+				       "Failed to %s script '%s' "
+				       "(view user logfile '%s' for more information)",
 				       compile_name,
 				       sieve_script_location(script),
 				       srctx->userlog);
 				break;
 			}
 			e_error(sieve_get_event(svinst),
-				"Failed to %s script `%s'",
+				"Failed to %s script '%s'",
 				compile_name, sieve_script_location(script));
 			break;
 		/* Cumulative resource limit exceeded */
 		case SIEVE_ERROR_RESOURCE_LIMIT:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s "
+				"Failed to open script '%s' for %s "
 				"(cumulative resource limit exceeded)",
 				sieve_script_location(script), compile_name);
 			break;
 		/* Something else */
 		default:
 			e_error(sieve_get_event(svinst),
-				"Failed to open script `%s' for %s",
+				"Failed to open script '%s' for %s",
 				sieve_script_location(script), compile_name);
 			break;
 		}
@@ -541,12 +541,12 @@ lda_sieve_execute_script(struct lda_sieve_run_context *srctx,
 
 	if (!discard_script) {
 		e_debug(sieve_get_event(svinst),
-			"Opening script %d of %d from `%s'",
+			"Opening script %d of %d from '%s'",
 			index, srctx->script_count,
 			sieve_script_location(script));
 	} else {
 		e_debug(sieve_get_event(svinst),
-			"Opening discard script from `%s'",
+			"Opening discard script from '%s'",
 			sieve_script_location(script));
 	}
 
@@ -557,7 +557,7 @@ lda_sieve_execute_script(struct lda_sieve_run_context *srctx,
 	/* Execute */
 
 	e_debug(sieve_get_event(svinst),
-		"Executing script from `%s'",
+		"Executing script from '%s'",
 		sieve_get_source(sbin));
 
 	if (!discard_script) {
@@ -725,19 +725,19 @@ static int lda_sieve_find_scripts(struct lda_sieve_run_context *srctx)
 			switch (error) {
 			case SIEVE_ERROR_NOT_FOUND:
 				e_debug(sieve_get_event(svinst),
-					"User has no active script in storage `%s'",
+					"User has no active script in storage '%s'",
 					sieve_storage_location(main_storage));
 				break;
 			case SIEVE_ERROR_TEMP_FAILURE:
 				e_error(sieve_get_event(svinst),
-					"Failed to access active Sieve script in user storage `%s' "
+					"Failed to access active Sieve script in user storage '%s' "
 					"(temporary failure)",
 					sieve_storage_location(main_storage));
 				ret = -1;
 				break;
 			default:
 				e_error(sieve_get_event(svinst),
-					"Failed to access active Sieve script in user storage `%s'",
+					"Failed to access active Sieve script in user storage '%s'",
 					sieve_storage_location(main_storage));
 				break;
 			}
diff --git a/src/plugins/sieve-extprograms/cmd-execute.c b/src/plugins/sieve-extprograms/cmd-execute.c
index 16d936710..7fa114b57 100644
--- a/src/plugins/sieve-extprograms/cmd-execute.c
+++ b/src/plugins/sieve-extprograms/cmd-execute.c
@@ -396,7 +396,7 @@ cmd_execute_operation_execute(const struct sieve_runtime_env *renv,
 	sieve_runtime_trace(renv, SIEVE_TRLVL_ACTIONS, "execute action");
 	sieve_runtime_trace_descend(renv);
 	sieve_runtime_trace(renv, SIEVE_TRLVL_ACTIONS,
-			    "execute program `%s'",
+			    "execute program '%s'",
 			    str_sanitize(program_name, 128));
 
 	sprog = sieve_extprogram_create(this_ext, eenv->scriptenv,
@@ -461,13 +461,13 @@ cmd_execute_operation_execute(const struct sieve_runtime_env *renv,
 		if (error == SIEVE_ERROR_NOT_FOUND) {
 			sieve_runtime_error(
 				renv, NULL,
-				"execute action: program `%s' not found",
+				"execute action: program '%s' not found",
 				str_sanitize(program_name, 80));
 		} else {
 			sieve_extprogram_exec_error(
 				renv->ehandler,
 				sieve_runtime_get_full_command_location(renv),
-				"execute action: failed to execute to program `%s'",
+				"execute action: failed to execute to program '%s'",
 				str_sanitize(program_name, 80));
 		}
 	} else {
diff --git a/src/plugins/sieve-extprograms/cmd-filter.c b/src/plugins/sieve-extprograms/cmd-filter.c
index 1710c4fa9..555c52d4c 100644
--- a/src/plugins/sieve-extprograms/cmd-filter.c
+++ b/src/plugins/sieve-extprograms/cmd-filter.c
@@ -183,7 +183,7 @@ cmd_filter_operation_execute(const struct sieve_runtime_env *renv,
 	sieve_runtime_trace(renv, SIEVE_TRLVL_ACTIONS, "filter action");
 	sieve_runtime_trace_descend(renv);
 	sieve_runtime_trace(renv, SIEVE_TRLVL_ACTIONS,
-		"execute program `%s'", str_sanitize(program_name, 128));
+		"execute program '%s'", str_sanitize(program_name, 128));
 
 	sprog = sieve_extprogram_create(this_ext, eenv->scriptenv,
 					eenv->msgdata, "filter",
@@ -229,14 +229,14 @@ cmd_filter_operation_execute(const struct sieve_runtime_env *renv,
 	} else if (ret < 0) {
 		if (error == SIEVE_ERROR_NOT_FOUND) {
 			sieve_runtime_error(renv, NULL, "filter action: "
-					    "program `%s' not found",
+					    "program '%s' not found",
 					    str_sanitize(program_name, 80));
 		} else {
 			sieve_extprogram_exec_error(
 				renv->ehandler,
 				sieve_runtime_get_full_command_location(renv),
 				"filter action: "
-				"failed to execute to program `%s'",
+				"failed to execute to program '%s'",
 				str_sanitize(program_name, 80));
 		}
 
diff --git a/src/plugins/sieve-extprograms/cmd-pipe.c b/src/plugins/sieve-extprograms/cmd-pipe.c
index be90122c6..1c6ff90e2 100644
--- a/src/plugins/sieve-extprograms/cmd-pipe.c
+++ b/src/plugins/sieve-extprograms/cmd-pipe.c
@@ -411,7 +411,7 @@ act_pipe_commit(const struct sieve_action_exec_env *aenv,
 				str_sanitize(act->program_name, 256));
 
 		sieve_result_event_log(aenv, e->event(),
-				       "piped message to program `%s'",
+				       "piped message to program '%s'",
 				       str_sanitize(act->program_name, 128));
 
 		/* Indicate that message was successfully 'forwarded' */
@@ -422,18 +422,18 @@ act_pipe_commit(const struct sieve_action_exec_env *aenv,
 				sieve_result_error(
 					aenv,
 					"failed to pipe message to program: "
-					"program `%s' not found",
+					"program '%s' not found",
 					str_sanitize(act->program_name, 80));
 			} else {
 				sieve_extprogram_exec_error(
 					aenv->ehandler, NULL,
-					"failed to pipe message to program `%s'",
+					"failed to pipe message to program '%s'",
 					str_sanitize(act->program_name, 80));
 			}
 		} else {
 			sieve_extprogram_exec_error(
 				aenv->ehandler, NULL,
-				"failed to execute to program `%s'",
+				"failed to execute to program '%s'",
 				str_sanitize(act->program_name, 80));
 		}
 
diff --git a/src/plugins/sieve-extprograms/sieve-extprograms-common.c b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
index cb3de92f2..352090d2e 100644
--- a/src/plugins/sieve-extprograms/sieve-extprograms-common.c
+++ b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
@@ -229,7 +229,7 @@ _arg_validate(void *context, struct sieve_ast_argument *item)
 		if (!sieve_extprogram_arg_is_valid(arg)) {
 			sieve_argument_validate_error(
 				actx->valdtr, item,
-				"%s %s: specified external program argument `%s' is invalid",
+				"%s %s: specified external program argument '%s' is invalid",
 				sieve_command_identifier(actx->cmd),
 				sieve_command_type_name(actx->cmd),
 				str_sanitize(str_c(arg), 128));
@@ -349,7 +349,7 @@ int sieve_extprogram_command_read_operands(
 	       (ret = sieve_stringlist_next_item(*args_list_r, &arg)) > 0) {
 		if (!sieve_extprogram_arg_is_valid(arg)) {
 			sieve_runtime_error(renv, NULL,
-				"specified :args item `%s' is invalid",
+				"specified :args item '%s' is invalid",
 				str_sanitize(str_c(arg), 128));
 			return SIEVE_EXEC_FAILURE;
 		}
@@ -423,7 +423,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 	if (ext_config == NULL ||
 	    (ext_config->bin_dir == NULL && ext_config->socket_dir == NULL)) {
 		e_error(svinst->event, "action %s: "
-			"failed to execute program `%s': "
+			"failed to execute program '%s': "
 			"vnd.dovecot.%s extension is unconfigured",
 			action, program_name, action);
 		*error_r = SIEVE_ERROR_NOT_FOUND;
@@ -439,7 +439,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 			switch (errno) {
 			case ENOENT:
 				e_debug(svinst->event, "action %s: "
-					"socket path `%s' for program `%s' not found",
+					"socket path '%s' for program '%s' not found",
 					action, path, program_name);
 				break;
 			case EACCES:
@@ -450,7 +450,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 				return NULL;
 			default:
 				e_error(svinst->event, "action %s: "
-					"failed to stat socket `%s': %m",
+					"failed to stat socket '%s': %m",
 					action, path);
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				return NULL;
@@ -458,7 +458,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 			path = NULL;
 		} else if (!S_ISSOCK(st.st_mode)) {
 			e_error(svinst->event, "action %s: "
-				"socket path `%s' for program `%s' is not a socket",
+				"socket path '%s' for program '%s' is not a socket",
 				action, path, program_name);
 			*error_r = SIEVE_ERROR_NOT_POSSIBLE;
 			return NULL;
@@ -474,7 +474,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 			switch (errno) {
 			case ENOENT:
 				e_debug(svinst->event, "action %s: "
-					"executable path `%s' for program `%s' not found",
+					"executable path '%s' for program '%s' not found",
 					action, path, program_name);
 				*error_r = SIEVE_ERROR_NOT_FOUND;
 				break;
@@ -486,7 +486,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 				break;
 			default:
 				e_error(svinst->event, "action %s: "
-					"failed to stat program `%s': %m",
+					"failed to stat program '%s': %m",
 					action, path);
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				break;
@@ -495,13 +495,13 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 			return NULL;
 		} else if (!S_ISREG(st.st_mode)) {
 			e_error(svinst->event, "action %s: "
-				"executable `%s' for program `%s' is not a regular file",
+				"executable '%s' for program '%s' is not a regular file",
 				action, path, program_name);
 			*error_r = SIEVE_ERROR_NOT_POSSIBLE;
 			return NULL;
 		} else if ((st.st_mode & S_IWOTH) != 0) {
 			e_error(svinst->event, "action %s: "
-				"executable `%s' for program `%s' is world-writable",
+				"executable '%s' for program '%s' is world-writable",
 				action, path, program_name);
 			*error_r = SIEVE_ERROR_NO_PERMISSION;
 			return NULL;
@@ -511,7 +511,7 @@ sieve_extprogram_create(const struct sieve_extension *ext,
 	/* None found ? */
 	if (path == NULL) {
 		e_error(svinst->event, "action %s: "
-			"program `%s' not found", action, program_name);
+			"program '%s' not found", action, program_name);
 		*error_r = SIEVE_ERROR_NOT_FOUND;
 		return NULL;
 	}
diff --git a/src/sieve-tools/sieve-filter.c b/src/sieve-tools/sieve-filter.c
index 560d2e96c..8b4a78ac9 100644
--- a/src/sieve-tools/sieve-filter.c
+++ b/src/sieve-tools/sieve-filter.c
@@ -134,7 +134,7 @@ static int filter_message(struct sieve_filter_context *sfctx, struct mail *mail)
 	/* Execute script */
 	if (execute) {
 		sieve_info(ehandler, NULL,
-			   "filtering: [%s; %"PRIuUOFF_T" bytes] `%s'",
+			   "filtering: [%s; %"PRIuUOFF_T" bytes] '%s'",
 			   date, size, str_sanitize(subject, 40));
 
 		ret = sieve_execute(sbin, &msgdata, senv, ehandler, ehandler,
@@ -164,7 +164,7 @@ static int filter_message(struct sieve_filter_context *sfctx, struct mail *mail)
 		if (!source_write) {
 			/* READ-ONLY; Do nothing */
 		} else if (estatus.keep_original) {
-			/* Explicitly `stored' in source box; just keep it there */
+			/* Explicitly 'stored' in source box; just keep it there */
 			sieve_info(ehandler, NULL,
 				   "message kept in source mailbox");
 		} else if (estatus.message_saved) {
@@ -487,7 +487,7 @@ int main(int argc, char **argv)
 				i_fatal_status(
 					EX_USAGE,
 					"Invalid <discard-action> argument: "
-					"the `move' action requires mailbox argument");
+					"the 'move' action requires mailbox argument");
 			}
 		} else if (strcmp(srcact, "delete") == 0) {
 			discard_action = SIEVE_FILTER_DACT_DELETE;
diff --git a/src/testsuite/cmd-test-binary.c b/src/testsuite/cmd-test-binary.c
index 7d76c4548..00cbea018 100644
--- a/src/testsuite/cmd-test-binary.c
+++ b/src/testsuite/cmd-test-binary.c
@@ -182,7 +182,7 @@ cmd_test_binary_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace(renv, 0, "testsuite: "
 					    "test_binary_load command");
 			sieve_runtime_trace_descend(renv);
-			sieve_runtime_trace(renv, 0, "load binary `%s'",
+			sieve_runtime_trace(renv, 0, "load binary '%s'",
 					    str_c(binary_name));
 		}
 
@@ -202,7 +202,7 @@ cmd_test_binary_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace(renv, 0, "testsuite: "
 					    "test_binary_save command");
 			sieve_runtime_trace_descend(renv);
-			sieve_runtime_trace(renv, 0, "save binary `%s'",
+			sieve_runtime_trace(renv, 0, "save binary '%s'",
 					    str_c(binary_name));
 		}
 
diff --git a/src/testsuite/cmd-test-config.c b/src/testsuite/cmd-test-config.c
index 0143cf1a0..ec5e73c54 100644
--- a/src/testsuite/cmd-test-config.c
+++ b/src/testsuite/cmd-test-config.c
@@ -379,7 +379,7 @@ cmd_test_config_set_operation_execute(const struct sieve_runtime_env *renv,
 			renv, 0, "testsuite: test_config_set command");
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "set config `%s' = `%s'",
+			renv, 0, "set config '%s' = '%s'",
 			str_c(setting), str_c(value));
 	}
 
@@ -413,7 +413,7 @@ cmd_test_config_unset_operation_execute(const struct sieve_runtime_env *renv,
 			renv, 0, "testsuite: test_config_unset command");
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "unset config `%s'", str_c(setting));
+			renv, 0, "unset config '%s'", str_c(setting));
 	}
 
 	testsuite_setting_unset(str_c(setting));
@@ -482,7 +482,7 @@ cmd_test_config_reload_operation_execute(const struct sieve_runtime_env *renv,
 		if (sieve_runtime_trace_active(renv, SIEVE_TRLVL_COMMANDS)) {
 			sieve_runtime_trace(
 				renv, 0,
-				"reload configuration for extension `%s'",
+				"reload configuration for extension '%s'",
 				str_c(extension));
 		}
 
diff --git a/src/testsuite/cmd-test-imap-metadata.c b/src/testsuite/cmd-test-imap-metadata.c
index 7308d4cd5..806113e52 100644
--- a/src/testsuite/cmd-test-imap-metadata.c
+++ b/src/testsuite/cmd-test-imap-metadata.c
@@ -283,11 +283,11 @@ cmd_test_imap_metadata_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace_descend(renv);
 			if (mailbox == NULL) {
 				sieve_runtime_trace(renv, 0,
-					"set server annotation `%s'",
+					"set server annotation '%s'",
 					str_c(annotation));
 			} else {
 				sieve_runtime_trace(renv, 0,
-					"set annotation `%s' for mailbox `%s'",
+					"set annotation '%s' for mailbox '%s'",
 					str_c(annotation), str_c(mailbox));
 			}
 		}
diff --git a/src/testsuite/cmd-test-mailbox.c b/src/testsuite/cmd-test-mailbox.c
index b5d946ce4..4e9033c4e 100644
--- a/src/testsuite/cmd-test-mailbox.c
+++ b/src/testsuite/cmd-test-mailbox.c
@@ -117,7 +117,7 @@ cmd_test_mailbox_validate(struct sieve_validator *valdtr,
 		if ( !sieve_mailbox_check_name(folder, &error) ) {
 			sieve_command_validate_error(
 				valdtr, cmd, "%s command: "
-				"invalid mailbox `%s' specified: %s",
+				"invalid mailbox '%s' specified: %s",
 				sieve_command_identifier(cmd),
 				str_sanitize(folder, 256), error);
 			return FALSE;
@@ -193,7 +193,7 @@ cmd_test_mailbox_create_execute(const struct sieve_runtime_env *renv,
 			"testsuite/test_mailbox_create command");
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "create mailbox `%s'", mailbox);
+			renv, 0, "create mailbox '%s'", mailbox);
 	}
 
 	testsuite_mailstore_mailbox_create(renv, mailbox);
@@ -210,7 +210,7 @@ cmd_test_mailbox_delete_execute(const struct sieve_runtime_env *renv,
 			"testsuite/test_mailbox_delete command");
 		sieve_runtime_trace_descend(renv);
 		sieve_runtime_trace(
-			renv, 0, "delete mailbox `%s'", mailbox);
+			renv, 0, "delete mailbox '%s'", mailbox);
 	}
 
 	/* FIXME: implement */
@@ -240,7 +240,7 @@ cmd_test_mailbox_operation_execute(const struct sieve_runtime_env *renv,
 	if (!sieve_mailbox_check_name(str_c(mailbox), &error)) {
 		sieve_runtime_error(
 			renv, NULL, "%s command: "
-			"invalid mailbox `%s' specified: %s",
+			"invalid mailbox '%s' specified: %s",
 			cmd_test_mailbox_get_command_name(oprtn),
 			str_c(mailbox), error);
 		return SIEVE_EXEC_FAILURE;
diff --git a/src/testsuite/cmd-test-message.c b/src/testsuite/cmd-test-message.c
index ff3670495..83095aed1 100644
--- a/src/testsuite/cmd-test-message.c
+++ b/src/testsuite/cmd-test-message.c
@@ -262,7 +262,7 @@ cmd_test_message_validate_folder_tag(struct sieve_validator *valdtr,
 		if ( !sieve_mailbox_check_name(folder, &error) ) {
 			sieve_command_validate_error(
 				valdtr, cmd, "%s command: "
-				"invalid mailbox `%s' specified: %s",
+				"invalid mailbox '%s' specified: %s",
 				sieve_command_identifier(cmd),
 				str_sanitize(folder, 256), error);
 			return FALSE;
@@ -491,7 +491,7 @@ cmd_test_message_mailbox_operation_execute(const struct sieve_runtime_env *renv,
 
 	if (!sieve_mailbox_check_name(str_c(folder), &error)) {
 		return testsuite_test_failf(
-			renv, "invalid mailbox `%s' specified: %s",
+			renv, "invalid mailbox '%s' specified: %s",
 			str_c(folder), error);
 	}
 
@@ -506,7 +506,7 @@ cmd_test_message_mailbox_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace_descend(renv);
 			sieve_runtime_trace(
 				renv, 0, "check and retrieve mailbox message "
-				"[mailbox=`%s' index=%llu]",
+				"[mailbox='%s' index=%llu]",
 				str_c(folder), (unsigned long long)msg_index);
 		}
 	} else {
@@ -516,7 +516,7 @@ cmd_test_message_mailbox_operation_execute(const struct sieve_runtime_env *renv,
 			sieve_runtime_trace_descend(renv);
 			sieve_runtime_trace(
 				renv, 0, "retrieve mailbox message "
-				"[mailbox=`%s' index=%llu]",
+				"[mailbox='%s' index=%llu]",
 				str_c(folder), (unsigned long long)msg_index);
 		}
 	}
diff --git a/src/testsuite/testsuite-mailstore.c b/src/testsuite/testsuite-mailstore.c
index 6d0c1ff5b..5c8133eff 100644
--- a/src/testsuite/testsuite-mailstore.c
+++ b/src/testsuite/testsuite-mailstore.c
@@ -185,7 +185,7 @@ testsuite_mailstore_open(const char *folder)
 
 	if (!sieve_mailbox_check_name(folder, &error)) {
 		e_error(testsuite_sieve_instance->event,
-			"testsuite: invalid mailbox name `%s' specified: %s",
+			"testsuite: invalid mailbox name '%s' specified: %s",
 			folder, error);
 		return NULL;
 	}
@@ -314,7 +314,7 @@ int testsuite_mailstore_set_imap_metadata(const char *mailbox,
 	if (!imap_metadata_verify_entry_name(annotation, &error)) {
 		e_error(testsuite_sieve_instance->event,
 			"testsuite: imap metadata: "
-			"specified annotation name `%s' is invalid: %s",
+			"specified annotation name '%s' is invalid: %s",
 			str_sanitize(annotation, 256), error);
 		return -1;
 	}
@@ -347,7 +347,7 @@ int testsuite_mailstore_set_imap_metadata(const char *mailbox,
 	if (ret < 0) {
 		e_error(testsuite_sieve_instance->event,
 			"testsuite: imap metadata: "
-			"failed to assign annotation `%s': %s",
+			"failed to assign annotation '%s': %s",
 			str_sanitize(annotation, 256), error);
 		return -1;
 	}
diff --git a/src/testsuite/testsuite-message.c b/src/testsuite/testsuite-message.c
index 68e20ebe6..2defe5dc6 100644
--- a/src/testsuite/testsuite-message.c
+++ b/src/testsuite/testsuite-message.c
@@ -261,7 +261,7 @@ void testsuite_envelope_set_sender(const struct sieve_runtime_env *renv,
 				    &address, &error) < 0) {
 		e_error(testsuite_sieve_instance->event,
 			"testsuite: envelope sender address "
-			"`%s' is invalid: %s", value, error);
+			"'%s' is invalid: %s", value, error);
 	}
 	testsuite_envelope_set_sender_address(renv, address);
 }
@@ -293,7 +293,7 @@ void testsuite_envelope_set_recipient(const struct sieve_runtime_env *renv,
 				    &address, &error) < 0) {
 		e_error(testsuite_sieve_instance->event,
 			"testsuite: envelope recipient address "
-			"`%s' is invalid: %s", value, error);
+			"'%s' is invalid: %s", value, error);
 	}
 	testsuite_envelope_set_recipient_address(renv, address);
 }
@@ -322,7 +322,7 @@ void testsuite_envelope_set_orig_recipient(const struct sieve_runtime_env *renv,
 				    &address, &error) < 0) {
 		e_error(testsuite_sieve_instance->event,
 			"testsuite: envelope recipient address "
-			"`%s' is invalid: %s", value, error);
+			"'%s' is invalid: %s", value, error);
 	}
 	testsuite_envelope_set_orig_recipient_address(renv, address);
 }
diff --git a/src/testsuite/testsuite-script.c b/src/testsuite/testsuite-script.c
index ae57907aa..fef270049 100644
--- a/src/testsuite/testsuite-script.c
+++ b/src/testsuite/testsuite-script.c
@@ -40,7 +40,7 @@ _testsuite_script_compile(const struct sieve_runtime_env *renv,
 	const char *script_path;
 
 	sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-			    "compile script `%s'", script);
+			    "compile script '%s'", script);
 
 	script_path = sieve_file_script_get_dirpath(renv->script);
 	if (script_path == NULL)
@@ -245,7 +245,7 @@ bool testsuite_script_multiscript(const struct sieve_runtime_env *renv,
 		/* Execute */
 
 		sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				    "run script `%s'", script);
+				    "run script '%s'", script);
 
 		more = sieve_multiscript_run(mscript, sbin,
 					     testsuite_log_ehandler,
-- 
GitLab