diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 76dbb9f1020f6bfca46d90db04f773b994b6b98f..92d98095eada7ea162d402c244ba3c9788295ca2 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -123,18 +123,16 @@ bool sieve_storage_class_exists(struct sieve_instance *svinst,
 
 static struct event *
 sieve_storage_create_event(struct sieve_instance *svinst,
-			   struct event *event_parent,
-			   const struct sieve_storage *storage_class)
+			   struct event *event_parent, const char *driver_name)
 {
 	struct event *event;
 
 	event = event_create(event_parent == NULL ?
 			     svinst->event : event_parent);
 	event_add_category(event, &event_category_sieve_storage);
-	event_add_str(event, "driver", storage_class->driver_name);
+	event_add_str(event, "driver", driver_name);
 	event_set_append_log_prefix(
-		event, t_strdup_printf("%s storage: ",
-				       storage_class->driver_name));
+		event, t_strdup_printf("%s storage: ", driver_name));
 
 	return event;
 }
@@ -299,7 +297,7 @@ int sieve_storage_alloc(struct sieve_instance *svinst, struct event *event,
 		event_ref(storage->event);
 	} else {
 		storage->event = sieve_storage_create_event(
-			svinst, svinst->event, storage_class);
+			svinst, svinst->event, storage_class->driver_name);
 	}
 
 	*storage_r = storage;
@@ -329,7 +327,7 @@ sieve_storage_init(struct sieve_instance *svinst,
 	i_assert(storage_class->v.init != NULL);
 
 	event = sieve_storage_create_event(svinst, svinst->event,
-					   storage_class);
+					   storage_class->driver_name);
 
 	if ((flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0 &&
 	    !storage_class->allows_synchronization) {