diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c
index b034b1657bba5ca3091e3e65df8d7c4bbb1ddaa8..80309d60e523b4d63844da1297eafc6474849d64 100644
--- a/src/lib-sieve-tool/sieve-tool.c
+++ b/src/lib-sieve-tool/sieve-tool.c
@@ -359,8 +359,7 @@ void sieve_tool_init_mail_user(struct sieve_tool *tool,
 	const char *home = NULL, *errstr = NULL;
 
 	tool->mail_user = mail_user_alloc(NULL, username,
-					  mail_user_dovecot->set_info,
-					  mail_user_dovecot->unexpanded_set);
+					  mail_user_dovecot->unexpanded_set_parser);
 
 	if ((home = sieve_tool_get_homedir(sieve_tool)) != NULL)
 		mail_user_set_home(tool->mail_user, home);
@@ -380,7 +379,7 @@ static void sieve_tool_init_mail_raw_user(struct sieve_tool *tool)
 {
 	if (tool->mail_raw_user == NULL) {
 		tool->mail_raw_user = mail_raw_user_create(
-			master_service, tool->mail_user_dovecot);
+			tool->mail_user_dovecot);
 	}
 }
 
diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c
index 17398d67f3275c37176ef5ed45d86819d1890d05..eedf432849da076c5659cf0b1c3c68c69d522ca4 100644
--- a/src/lib-sieve/sieve-message.c
+++ b/src/lib-sieve/sieve-message.c
@@ -343,11 +343,8 @@ int sieve_message_substitute
 	i_assert(input->blocking);
 
 	if ( msgctx->raw_mail_user == NULL ) {
-		const struct mail_user_settings *user_set =
-			master_service_settings_get_root_set(master_service,
-				&mail_user_setting_parser_info);
 		msgctx->raw_mail_user =
-			raw_storage_create_from_set(mail_user->set_info, user_set);
+			raw_storage_create_from_set(mail_user->unexpanded_set_parser);
 	}
 
 	i_stream_seek(input, 0);
diff --git a/src/lib-sieve/util/edit-mail.c b/src/lib-sieve/util/edit-mail.c
index 04b03c39df5c4039c92694e5b2eab0d4c6693067..9cbafa1db6377ced8d6a4c2602fdc0cffc478289 100644
--- a/src/lib-sieve/util/edit-mail.c
+++ b/src/lib-sieve/util/edit-mail.c
@@ -48,11 +48,8 @@ static unsigned int edit_mail_refcount = 0;
 static struct mail_user *edit_mail_raw_storage_get(struct mail_user *mail_user)
 {
 	if (edit_mail_user == NULL) {
-		const struct mail_user_settings *user_set =
-			master_service_settings_get_root_set(master_service,
-				&mail_user_setting_parser_info);
-		edit_mail_user = raw_storage_create_from_set(
-			mail_user->set_info, user_set);
+		edit_mail_user =
+			raw_storage_create_from_set(mail_user->unexpanded_set_parser);
 	}
 
 	edit_mail_refcount++;
diff --git a/src/lib-sieve/util/mail-raw.c b/src/lib-sieve/util/mail-raw.c
index d9729a9fb837bff64909666de3de187144f2d374..74b252c77381dfd36d08ab81059f470eaf191522 100644
--- a/src/lib-sieve/util/mail-raw.c
+++ b/src/lib-sieve/util/mail-raw.c
@@ -134,13 +134,9 @@ static struct istream *mail_raw_create_stream
  * Init/Deinit
  */
 
-struct mail_user *mail_raw_user_create
-(struct master_service *service, struct mail_user *mail_user)
+struct mail_user *mail_raw_user_create(struct mail_user *mail_user)
 {
-	const struct mail_user_settings *user_set =
-		master_service_settings_get_root_set(service,
-			&mail_user_setting_parser_info);
-	return raw_storage_create_from_set(mail_user->set_info, user_set);
+	return raw_storage_create_from_set(mail_user->unexpanded_set_parser);
 }
 
 /*
diff --git a/src/lib-sieve/util/mail-raw.h b/src/lib-sieve/util/mail-raw.h
index a942d06d1b56927773d21e8aff2a6c7e672a8e68..5f3b4f0de72d3f21ffb76f421c20f913147ff74d 100644
--- a/src/lib-sieve/util/mail-raw.h
+++ b/src/lib-sieve/util/mail-raw.h
@@ -13,7 +13,7 @@ struct mail_raw {
 };
 
 struct mail_user *mail_raw_user_create
-	(struct master_service *service, struct mail_user *mail_user);
+	(struct mail_user *mail_user);
 
 struct mail_raw *mail_raw_open_stream
 	(struct mail_user *ruser, struct istream *input);
diff --git a/src/lib-sieve/util/test-edit-mail.c b/src/lib-sieve/util/test-edit-mail.c
index a6623ff10f36f5182a19b587f65cbd2791f29779..0ead824c8a80d05f563ecd456f060556a7f685e2 100644
--- a/src/lib-sieve/util/test-edit-mail.c
+++ b/src/lib-sieve/util/test-edit-mail.c
@@ -102,8 +102,7 @@ static void test_init(void)
 	test_pool = pool_alloconly_create(MEMPOOL_GROWING"test pool", 128);
 
 	test_init_mail_user();
-	test_raw_mail_user =
-		mail_raw_user_create(master_service, test_mail_user);
+	test_raw_mail_user = mail_raw_user_create(test_mail_user);
 }
 
 static void test_deinit(void)
diff --git a/src/testsuite/testsuite-mailstore.c b/src/testsuite/testsuite-mailstore.c
index 7762d5004a28b889dd61c12a58f6b123d2418eb1..2bcf70d76a92a769f9a95d46e39e5e2a8ead58f5 100644
--- a/src/testsuite/testsuite-mailstore.c
+++ b/src/testsuite/testsuite-mailstore.c
@@ -79,8 +79,7 @@ void testsuite_mailstore_init(void)
 	
 	mail_user_dovecot = sieve_tool_get_mail_user(sieve_tool);
 	mail_user = mail_user_alloc(NULL, "testsuite-mail-user@example.org",
-				    mail_user_dovecot->set_info,
-				    mail_user_dovecot->unexpanded_set);
+				    mail_user_dovecot->unexpanded_set_parser);
 	mail_user->autocreated = TRUE;
 	if (t_get_working_dir(&cwd, &error) < 0)
 		i_fatal("Failed to get working directory: %s", error);