diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c
index 93528585114c350ebd5d69f00e299fafd304413a..59e61825e4f4d71ea98a06a97f2319f45360aa10 100644
--- a/src/lib-sieve/plugins/include/ext-include-common.c
+++ b/src/lib-sieve/plugins/include/ext-include-common.c
@@ -163,7 +163,8 @@ ext_include_open_script_global(struct sieve_instance *svinst,
 		return -1;
 	}
 	if (extctx->global_storage == NULL &&
-	    sieve_storage_create(svinst, extctx->global_location, 0,
+	    sieve_storage_create(svinst, svinst->event,
+				 extctx->global_location, 0,
 				 &extctx->global_storage, error_code_r) < 0)
 		return -1;
 
diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c
index 8e4fe78b2ed4fa4c6551db5f873d6771902f3bac..445f848e13266c43cd1175eb8c0c3390cefeaa40 100644
--- a/src/lib-sieve/sieve-script.c
+++ b/src/lib-sieve/sieve-script.c
@@ -130,7 +130,7 @@ int sieve_script_create(struct sieve_instance *svinst,
 	*script_r = NULL;
 	sieve_error_args_init(&error_code_r, NULL);
 
-	if (sieve_storage_create(svinst, location, 0,
+	if (sieve_storage_create(svinst, svinst->event, location, 0,
 				 &storage, error_code_r) < 0)
 		return -1;
 
diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 8860c12438736791102a2c0e7d52f8f15a94cd82..05fe830efa4288643f739f5ba3b88e4196c11bb8 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -398,7 +398,8 @@ sieve_storage_init(struct sieve_instance *svinst, struct event *event_parent,
 	return ret;
 }
 
-int sieve_storage_create(struct sieve_instance *svinst, const char *location,
+int sieve_storage_create(struct sieve_instance *svinst, struct event *event,
+			 const char *location,
 			 enum sieve_storage_flags flags,
 			 struct sieve_storage **storage_r,
 			 enum sieve_error *error_code_r)
@@ -423,7 +424,7 @@ int sieve_storage_create(struct sieve_instance *svinst, const char *location,
 	if (ret == 0)
 		storage_class = &sieve_file_storage;
 
-	return sieve_storage_init(svinst, svinst->event, storage_class,
+	return sieve_storage_init(svinst, event, storage_class,
 				  data, flags, FALSE,
 				  storage_r, error_code_r);
 }
@@ -577,7 +578,8 @@ int sieve_storage_create_personal(struct sieve_instance *svinst,
 				"Trying default script location '%s'",
 				set_default);
 
-			ret = sieve_storage_create(svinst, set_default, 0,
+			ret = sieve_storage_create(svinst, svinst->event,
+						   set_default, 0,
 						   &storage, error_code_r);
 			if (ret < 0) {
 				switch (*error_code_r) {
@@ -1669,6 +1671,8 @@ int sieve_storage_sequence_next(struct sieve_storage_sequence *sseq,
 				struct sieve_storage **storage_r,
 				enum sieve_error *error_code_r)
 {
+	struct sieve_instance *svinst = sseq->svinst;
+
 	*storage_r = NULL;
 	sieve_error_args_init(&error_code_r, NULL);
 
@@ -1676,7 +1680,7 @@ int sieve_storage_sequence_next(struct sieve_storage_sequence *sseq,
 		return 0;
 	sseq->done = TRUE;
 
-	if (sieve_storage_create(sseq->svinst, sseq->location, 0,
+	if (sieve_storage_create(svinst, svinst->event, sseq->location, 0,
 				 storage_r, error_code_r) < 0)
 		return -1;
 	return 1;
diff --git a/src/lib-sieve/sieve-storage.h b/src/lib-sieve/sieve-storage.h
index 61bae137344f20f194ed1d4d62865acb21d28df4..0a38ea5d57c9de57f94d4d72d5274b18bae20c25 100644
--- a/src/lib-sieve/sieve-storage.h
+++ b/src/lib-sieve/sieve-storage.h
@@ -29,7 +29,8 @@ struct sieve_storage;
 bool sieve_storage_class_exists(struct sieve_instance *svinst,
 				const char *name);
 
-int sieve_storage_create(struct sieve_instance *svinst, const char *location,
+int sieve_storage_create(struct sieve_instance *svinst, struct event *event,
+			 const char *location,
 			 enum sieve_storage_flags flags,
 			 struct sieve_storage **storage_r,
 			 enum sieve_error *error_code_r);
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index 150f860615c76c715b2400b2b2c13d213f8063d9..35bd6f615bc5fe40ad73c82a4122d73eec7cce81 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -253,7 +253,7 @@ imap_filter_sieve_get_global_storage(struct imap_filter_sieve_context *sctx,
 		*error_r = "No global Sieve scripts available";
 		return -1;
 	}
-	if (sieve_storage_create(svinst, location, 0,
+	if (sieve_storage_create(svinst, svinst->event, location, 0,
 				 &ifsuser->global_storage, &error_code) == 0) {
 		*storage_r = ifsuser->global_storage;
 		return 0;