diff --git a/src/lib-sieve/sieve-storage-sync.c b/src/lib-sieve/sieve-storage-sync.c
index 48ba40bbde80d17bf0845e9d5b56256901aa2bd3..36308fa0d504521a6f41ddaea4dfb56f1358abbf 100644
--- a/src/lib-sieve/sieve-storage-sync.c
+++ b/src/lib-sieve/sieve-storage-sync.c
@@ -36,8 +36,7 @@ int sieve_storage_sync_init
 		return 0;
 	}
 
-	sieve_storage_sys_debug(storage, "sync: "
-		"Synchronization active");
+	e_debug(storage->event, "sync: Synchronization active");
 
 	storage->sync_inbox_ns = mail_namespace_find_inbox(user->namespaces);
 	return 0;
diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 20165f8b85ba17cfcdd3b968c23f8aeb41c0a0dd..676daf284024c22e76026e06a6f199b93c51509c 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -312,9 +312,7 @@ sieve_storage_init(struct sieve_instance *svinst,
 
 	if ((flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0 &&
 	    !storage_class->allows_synchronization) {
-		e_debug(svinst->event, "%s storage: "
-			"Storage does not support synchronization",
-			storage_class->driver_name);
+		e_debug(event, "Storage does not support synchronization");
 		*error_r = SIEVE_ERROR_NOT_POSSIBLE;
 		event_unref(&event);
 		return NULL;
@@ -389,7 +387,6 @@ sieve_storage_do_create_main(struct sieve_instance *svinst,
 			     enum sieve_storage_flags flags,
 			     enum sieve_error *error_r)
 {
-	bool debug = svinst->debug;
 	struct sieve_storage *storage = NULL;
 	const struct sieve_storage
 		*sieve_class = NULL,
@@ -490,17 +487,15 @@ sieve_storage_do_create_main(struct sieve_instance *svinst,
 		storage->max_scripts = uint_setting;
 	}
 
-	if (debug) {
-		if (storage->max_storage > 0) {
-			sieve_storage_sys_debug(storage, "quota: "
-				"Storage limit: %llu bytes",
-				(unsigned long long int) storage->max_storage);
-		}
-		if (storage->max_scripts > 0) {
-			sieve_storage_sys_debug(storage, "quota: "
-				"Script count limit: %llu scripts",
-				(unsigned long long int) storage->max_scripts);
-		}
+	if (storage->max_storage > 0) {
+		e_debug(storage->event, "quota: "
+			"Storage limit: %llu bytes",
+			(unsigned long long int) storage->max_storage);
+	}
+	if (storage->max_scripts > 0) {
+		e_debug(storage->event, "quota: "
+			"Script count limit: %llu scripts",
+			(unsigned long long int) storage->max_scripts);
 	}
 	return storage;
 }
@@ -556,7 +551,7 @@ sieve_storage_create_main(struct sieve_instance *svinst, struct mail_user *user,
 
 		if (storage->default_location != NULL &&
 			storage->default_name != NULL) {
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Default script at `%s' is visible by name `%s'",
 				storage->default_location, storage->default_name);
 		}
@@ -635,7 +630,6 @@ void sieve_storage_unref(struct sieve_storage **_storage)
 
 int sieve_storage_setup_bindir(struct sieve_storage *storage, mode_t mode)
 {
-	struct sieve_instance *svinst = storage->svinst;
 	const char *bin_dir = storage->bin_dir;
 	struct stat st;
 
@@ -659,9 +653,8 @@ int sieve_storage_setup_bindir(struct sieve_storage *storage, mode_t mode)
 	}
 
 	if (mkdir_parents(bin_dir, mode) == 0) {
-		if (svinst->debug)
-			sieve_storage_sys_debug(storage,
-				"Created directory for binaries: %s", bin_dir);
+		e_debug(storage->event,
+			"Created directory for binaries: %s", bin_dir);
 		return 1;
 	}
 
@@ -756,7 +749,7 @@ sieve_storage_get_script(struct sieve_storage *storage, const char *name,
 			   try to access that instead */
 			i_assert(*storage->default_location != '\0');
 
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Trying default script instead");
 
 			script = sieve_script_create(
@@ -802,8 +795,7 @@ sieve_storage_open_script(struct sieve_storage *storage, const char *name,
 		   try to open that instead */
 		i_assert(*storage->default_location != '\0');
 
-		sieve_storage_sys_debug(storage,
-			"Trying default script instead");
+		e_debug(storage->event, "Trying default script instead");
 
 		script = sieve_script_create_open(
 			svinst, storage->default_location, NULL, error_r);
diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.c b/src/lib-sieve/storage/dict/sieve-dict-storage.c
index 81bc46d1ff3115c5c1b65f0f471b9b8e341a4d93..371d9fa042e0fcc82423930731b3aac4458316f6 100644
--- a/src/lib-sieve/storage/dict/sieve-dict-storage.c
+++ b/src/lib-sieve/storage/dict/sieve-dict-storage.c
@@ -69,8 +69,7 @@ static int sieve_dict_storage_init
 		return -1;
 	}
 
-	sieve_storage_sys_debug(storage,
-		"user=%s, uri=%s", username, uri);
+	e_debug(storage->event, "user=%s, uri=%s", username, uri);
 
 	dstorage->uri = p_strdup(storage->pool, uri);
 	dstorage->username = p_strdup(storage->pool, username);
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 cd6d73cd326669d083214c7c9ae72b39c4017648..e51063885b0d192354a09af50508d1f1b9af206d 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage-active.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage-active.c
@@ -336,7 +336,7 @@ bool sieve_file_storage_active_rescue_regular
 	}
 
 	if ( S_ISLNK( st.st_mode ) ) {
-		sieve_storage_sys_debug(storage,
+		e_debug(storage->event,
 			"Nothing to rescue %s.", fstorage->active_path);
 		return TRUE; /* Nothing to rescue */
 	}
diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c
index 986756cdb5235476fffdd34872933f45f519dd5c..8e7a8f12db279b0bff359df8270d4c76cda191db 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage.c
@@ -71,8 +71,7 @@ static int sieve_file_storage_stat
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			break;
 		}
-		sieve_storage_sys_debug(storage,
-			"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;
@@ -161,8 +160,7 @@ static int mkdir_verify
 	}
 
 	if ( mkdir_parents_chgrp(dir, mode, gid, gid_origin) == 0 ) {
-		sieve_storage_sys_debug(storage,
-			"Created storage directory %s", dir);
+		e_debug(storage->event, "Created storage directory %s", dir);
 		return 0;
 	}
 
@@ -345,18 +343,17 @@ static int sieve_file_storage_init_common
 				*error_r = SIEVE_ERROR_TEMP_FAILURE;
 				return -1;
 			} 
-			sieve_storage_sys_debug(storage,
-				"Failed to normalize active script directory (path=%s): "
+			e_debug(storage->event,
+				"Failed to normalize active script directory "
+				"(path=%s): "
 				"Part of the path does not exist (yet)",
 				active_dir);			
 		} else {
 			active_path = t_abspath_to(active_fname, active_dir);
 		}
 
-		sieve_storage_sys_debug(storage,
-			"Using %sSieve script path: %s",
-			( storage_path != NULL ? "active " : "" ),
-			active_path);
+		e_debug(storage->event, "Using %sSieve script path: %s",
+			(storage_path != NULL ? "active " : ""), active_path);
 
 		fstorage->active_path = p_strdup(storage->pool, active_path);
 		fstorage->active_fname = p_strdup(storage->pool, active_fname);
@@ -366,8 +363,8 @@ static int sieve_file_storage_init_common
 
 	storage_dir = storage_path;
 	if ( storage_path != NULL && *storage_path != '\0' ) {
-		sieve_storage_sys_debug(storage,
-			"Using script storage path: %s", storage_path);
+		e_debug(storage->event, "Using script storage path: %s",
+			storage_path);
 		have_link = TRUE;
 
 	} else {
@@ -424,10 +421,11 @@ static int sieve_file_storage_init_common
 			}
 		}
 
-		sieve_storage_sys_debug(storage,
+		e_debug(storage->event,
 			"Using permissions from %s: mode=0%o gid=%ld",
 			file_create_gid_origin, (int)dir_create_mode,
-			file_create_gid == (gid_t)-1 ? -1L : (long)file_create_gid);
+			file_create_gid == (gid_t)-1 ?
+				-1L : (long)file_create_gid);
 
 		/*
 		 * Ensure sieve local directory structure exists (full autocreate):
@@ -473,7 +471,7 @@ static int sieve_file_storage_init_common
 			link_path = sieve_storage_get_relative_link_path
 				(fstorage->active_path, storage_path);
 
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Relative path to sieve storage in active link: %s",
 				link_path);
 
@@ -540,7 +538,7 @@ static int sieve_file_storage_init
 					return -1;
 				if ( !S_ISREG(fstorage->lnk_st.st_mode) )
 					return -1;
-				sieve_storage_sys_debug(storage,
+				e_debug(storage->event,
 					"Sieve storage path `%s' not found, "
 					"but the active script `%s' is a regular file, "
 					"so this is used for backwards compatibility.",
@@ -573,10 +571,11 @@ static int sieve_file_storage_init
 	if ( active_path == NULL || *active_path == '\0' ) {
 		if ( storage->main_storage ||
 			(storage->flags & SIEVE_STORAGE_FLAG_READWRITE) != 0) {
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Active script path is unconfigured; "
-				"using default (path=%s)", SIEVE_FILE_DEFAULT_PATH);
-				active_path = SIEVE_FILE_DEFAULT_PATH;
+				"using default (path=%s)",
+				SIEVE_FILE_DEFAULT_PATH);
+			active_path = SIEVE_FILE_DEFAULT_PATH;
 		}
 	}
 
@@ -593,8 +592,7 @@ static void sieve_file_storage_autodetect
 	int mode = ( (storage->flags & SIEVE_STORAGE_FLAG_READWRITE) != 0 ?
 		R_OK|W_OK|X_OK : R_OK|X_OK );
 
-	sieve_storage_sys_debug(storage,
-		"Performing auto-detection");
+	e_debug(storage->event, "Performing auto-detection");
 
 	/* We'll need to figure out the storage location ourself.
 	 *
@@ -602,15 +600,14 @@ static void sieve_file_storage_autodetect
 	 */
 	if ( home != NULL && *home != '\0' ) {
 		/* Use default ~/sieve */
-		sieve_storage_sys_debug(storage, "Use home (%s)", home);
+		e_debug(storage->event, "Use home (%s)", home);
 		*storage_path_r = t_strconcat(home, "/sieve", NULL);
 	} else {
-			sieve_storage_sys_debug(storage,
-				"HOME is not set");
+		e_debug(storage->event, "HOME is not set");
 
 		if (access("/sieve", mode) == 0) {
 			*storage_path_r = "/sieve";
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Directory `/sieve' exists, assuming chroot");
 		}
 	}
@@ -681,9 +678,10 @@ static int sieve_file_storage_do_init_legacy
 	if ( (active_path == NULL || *active_path == '\0') ) {
 		if ( storage->main_storage ||
 		(storage->flags & SIEVE_STORAGE_FLAG_READWRITE) != 0) {
-			sieve_storage_sys_debug(storage,
+			e_debug(storage->event,
 				"Active script path is unconfigured; "
-				"using default (path=%s)", SIEVE_FILE_DEFAULT_PATH);
+				"using default (path=%s)",
+				SIEVE_FILE_DEFAULT_PATH);
 			active_path = SIEVE_FILE_DEFAULT_PATH;
 		} else {
 			return -1;
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index 86db605041631300647e7eba5f11e902c92b1e2d..4e578e286018532ca51d9bae12a60fe39e7fd6dc 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -324,9 +324,9 @@ static int db_ldap_connect_finish(struct ldap_connection *conn, int ret)
 
 	timeout_remove(&conn->to);
 	conn->conn_state = LDAP_CONN_STATE_BOUND;
-	sieve_storage_sys_debug(storage, "db: "
+	e_debug(storage->event, "db: "
 		"Successfully bound (dn %s)",
-			set->dn == NULL ? "(none)" : set->dn);
+		set->dn == NULL ? "(none)" : set->dn);
 	while (db_ldap_request_queue_next(conn))
 		;
 	return 0;
@@ -374,10 +374,8 @@ static void db_ldap_abort_requests(struct ldap_connection *conn,
 		}
 		if (error)
 			e_error(storage->event, "db: %s", reason);
-		else {
-			sieve_storage_sys_debug(storage, "db: "
-				"%s", reason);
-		}
+		else
+			e_debug(storage->event, "db: %s", reason);
 		request->callback(conn, request, NULL);
 		max_count--;
 	}
@@ -447,8 +445,8 @@ db_ldap_handle_request_result(struct ldap_connection *conn,
 		res = NULL;
 	} else {
 		if (!final_result && storage->svinst->debug) {
-			sieve_storage_sys_debug(storage, "db: "
-				"ldap_search(base=%s filter=%s) returned entry: %s",
+			e_debug(storage->event,
+				"db: ldap_search(base=%s filter=%s) returned entry: %s",
 				request->base, request->filter,
 				ldap_get_dn(conn->ld, res->msg));
 		}
@@ -887,7 +885,7 @@ int sieve_ldap_db_connect(struct ldap_connection *conn)
 	if (debug) {
 		if (gettimeofday(&end, NULL) == 0) {
 			int msecs = timeval_diff_msecs(&end, &start);
-			sieve_storage_sys_debug(storage, "db: "
+			e_debug(storage->event, "db: "
 				"Initialization took %d msecs", msecs);
 		}
 	}
@@ -1069,14 +1067,13 @@ static void db_ldap_wait(struct ldap_connection *conn)
 		 io_loop_have_immediate_timeouts(conn->ioloop));
 
 	do {
-		sieve_storage_sys_debug(storage, "db: "
+		e_debug(storage->event, "db: "
 			"Waiting for %d requests to finish",
 			aqueue_count(conn->request_queue) );
 		io_loop_run(conn->ioloop);
 	} while (aqueue_count(conn->request_queue) > 0);
 
-	sieve_storage_sys_debug(storage, "db: "
-		"All requests finished");
+	e_debug(storage->event, "db: All requests finished");
 
 	current_ioloop = prev_ioloop;
 	db_ldap_switch_ioloop(conn);
@@ -1155,7 +1152,7 @@ sieve_ldap_db_get_script(struct ldap_connection *conn,
 			size = vals[0]->bv_len;
 			data = i_malloc(size);
 
-			sieve_storage_sys_debug(storage, "db: "
+			e_debug(storage->event, "db: "
 				"Found script with length %"PRIuSIZE_T, size);
 
 			memcpy(data, vals[0]->bv_val, size);
@@ -1294,11 +1291,10 @@ int sieve_ldap_db_lookup_script(struct ldap_connection *conn,
 	request->request.filter = p_strdup(pool, str_c(str));
 	request->request.attributes = attr_names;
 
-	sieve_storage_sys_debug(storage,
-			       "base=%s scope=%s filter=%s fields=%s",
-			       request->request.base, lstorage->set.scope,
-			       request->request.filter,
-			       t_strarray_join((const char **)attr_names, ","));
+	e_debug(storage->event, "base=%s scope=%s filter=%s fields=%s",
+		request->request.base, lstorage->set.scope,
+		request->request.filter,
+		t_strarray_join((const char **)attr_names, ","));
 
 	request->request.callback = sieve_ldap_lookup_script_callback;
 	db_ldap_request(conn, &request->request);
@@ -1368,10 +1364,9 @@ int sieve_ldap_db_read_script(struct ldap_connection *conn,
 	request->request.filter = "(objectClass=*)";
 	request->request.attributes = attr_names;
 
-	sieve_storage_sys_debug(storage,
-			       "base=%s scope=base filter=%s fields=%s",
-			       request->request.base, request->request.filter,
-			       t_strarray_join((const char **)attr_names, ","));
+	e_debug(storage->event, "base=%s scope=base filter=%s fields=%s",
+		request->request.base, request->request.filter,
+		t_strarray_join((const char **)attr_names, ","));
 
 	request->request.callback = sieve_ldap_read_script_callback;
 	db_ldap_request(conn, &request->request);
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
index 2e9a160ab1d466b83dc5bff8252412a209d446e4..1f7922a890fc0b136c9d175759aed5b17e92c529 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
@@ -75,8 +75,8 @@ static int sieve_ldap_storage_init
 		username = svinst->username;
 	}
 
-	sieve_storage_sys_debug(storage,
-		"user=%s, config=%s", username, storage->location);
+	e_debug(storage->event, "user=%s, config=%s",
+		username, storage->location);
 
 	if ( sieve_ldap_storage_read_settings(lstorage, storage->location) < 0 )
 		return -1;