diff --git a/src/lib-sieve/storage/dict/sieve-dict-script.c b/src/lib-sieve/storage/dict/sieve-dict-script.c
index 6ccac8ebbc83ad8743062a420cbed50dddd238a5..791a6ac275099d270c8ddebdad52f9011b1db768 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-script.c
+++ b/src/lib-sieve/storage/dict/sieve-dict-script.c
@@ -73,16 +73,13 @@ static int sieve_dict_script_open(struct sieve_script *script)
 	const char *path, *data_id, *error;
 	int ret;
 
-	if (sieve_dict_storage_get_dict(dstorage, &dscript->dict) < 0)
-		return -1;
-
 	path = t_strconcat(DICT_SIEVE_NAME_PATH,
 			   dict_escape_string(name), NULL);
 
 	struct dict_op_settings set = {
 		.username = svinst->username,
 	};
-	ret = dict_lookup(dscript->dict, &set, script->pool, path,
+	ret = dict_lookup(dstorage->dict, &set, script->pool, path,
 			  &data_id, &error);
 	if (ret <= 0) {
 		if (ret < 0) {
@@ -109,6 +106,8 @@ sieve_dict_script_get_stream(struct sieve_script *script,
 	struct sieve_instance *svinst = storage->svinst;
 	struct sieve_dict_script *dscript =
 		container_of(script, struct sieve_dict_script, script);
+	struct sieve_dict_storage *dstorage =
+		container_of(storage, struct sieve_dict_storage, storage);
 	const char *path, *name = script->name, *data, *error;
 	int ret;
 
@@ -121,7 +120,7 @@ sieve_dict_script_get_stream(struct sieve_script *script,
 	struct dict_op_settings set = {
 		.username = svinst->username,
 	};
-	ret = dict_lookup(dscript->dict, &set, dscript->data_pool, path,
+	ret = dict_lookup(dstorage->dict, &set, dscript->data_pool, path,
 			  &data, &error);
 	if (ret <= 0) {
 		if (ret < 0) {
diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.c b/src/lib-sieve/storage/dict/sieve-dict-storage.c
index a8f48936d422bb20834e7d80fcad23400af15809..894d6753036c3de06eb3bc2d56998cee39e8dae3 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-storage.c
+++ b/src/lib-sieve/storage/dict/sieve-dict-storage.c
@@ -61,38 +61,24 @@ sieve_dict_storage_init(struct sieve_storage *storage,
 
 	e_debug(storage->event, "user=%s, uri=%s", svinst->username, uri);
 
-	dstorage->uri = p_strdup(storage->pool, uri);
-
 	storage->location = p_strconcat(
 		storage->pool, SIEVE_DICT_STORAGE_DRIVER_NAME, ":",
 		storage->location, ";user=", svinst->username, NULL);
 
-	return 0;
-}
-
-int sieve_dict_storage_get_dict(struct sieve_dict_storage *dstorage,
-				struct dict **dict_r)
-{
-	struct sieve_storage *storage = &dstorage->storage;
-	struct sieve_instance *svinst = storage->svinst;
 	struct dict_legacy_settings dict_set;
 	const char *error;
 	int ret;
 
-	if (dstorage->dict == NULL) {
-		i_zero(&dict_set);
-		dict_set.base_dir = svinst->base_dir;
-		ret = dict_init_legacy(dstorage->uri, &dict_set,
-				       &dstorage->dict, &error);
-		if (ret < 0) {
-			sieve_storage_set_critical(storage,
-				"Failed to initialize dict with data '%s' for user '%s': %s",
-				dstorage->uri, svinst->username, error);
-			return -1;
-		}
+	i_zero(&dict_set);
+	dict_set.base_dir = svinst->base_dir;
+	ret = dict_init_legacy(uri, &dict_set, &dstorage->dict, &error);
+	if (ret < 0) {
+		sieve_storage_set_critical(storage,
+			"Failed to initialize dict with data '%s' for user '%s': %s",
+			uri, svinst->username, error);
+		return -1;
 	}
 
-	*dict_r = dstorage->dict;
 	return 0;
 }
 
diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.h b/src/lib-sieve/storage/dict/sieve-dict-storage.h
index b53edf441550a5ec67143d6911fe923ff21ae90f..5fd9b0469761c5f6782fe66d93778bd75e79d3ef 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-storage.h
+++ b/src/lib-sieve/storage/dict/sieve-dict-storage.h
@@ -17,15 +17,9 @@
 
 struct sieve_dict_storage {
 	struct sieve_storage storage;
-
-	const char *uri;
-
 	struct dict *dict;
 };
 
-int sieve_dict_storage_get_dict(struct sieve_dict_storage *dstorage,
-				struct dict **dict_r);
-
 int sieve_dict_storage_active_script_get_name(struct sieve_storage *storage,
 					      const char **name_r);
 
@@ -36,8 +30,6 @@ int sieve_dict_storage_active_script_get_name(struct sieve_storage *storage,
 struct sieve_dict_script {
 	struct sieve_script script;
 
-	struct dict *dict;
-
 	pool_t data_pool;
 	const char *data_id;
 	const char *data;