diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c
index 7249ad73da3f934f0972fa4160e7bd9c7ebc526c..114a4f6256100682c275b0975ee3890116c62098 100644
--- a/src/lib-sieve/plugins/include/ext-include-common.c
+++ b/src/lib-sieve/plugins/include/ext-include-common.c
@@ -119,10 +119,8 @@ void ext_include_unload(const struct sieve_extension *ext)
 	struct ext_include_context *ctx =
 		(struct ext_include_context *)ext->context;
 
-	if (ctx->global_storage != NULL)
-		sieve_storage_unref(&ctx->global_storage);
-	if (ctx->personal_storage != NULL)
-		sieve_storage_unref(&ctx->personal_storage);
+	sieve_storage_unref(&ctx->global_storage);
+	sieve_storage_unref(&ctx->personal_storage);
 
 	i_free(ctx->global_location);
 	i_free(ctx);
diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 52eceb44affa136607cf312168a714a77229f7a4..3a25bd3e2b58f588cb89cf4bd1448298ef0827e2 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -340,7 +340,6 @@ sieve_storage_init(struct sieve_instance *svinst,
 					     &location, &options) < 0) {
 			*error_r = SIEVE_ERROR_TEMP_FAILURE;
 			sieve_storage_unref(&storage);
-			storage = NULL;
 		} else {
 			storage->location = p_strdup(storage->pool, location);
 
@@ -348,10 +347,8 @@ sieve_storage_init(struct sieve_instance *svinst,
 				      storage->location);
 
 			if (storage_class->v.init(storage, options,
-						  error_r) < 0) {
+						  error_r) < 0)
 				sieve_storage_unref(&storage);
-				storage = NULL;
-			}
 		}
 	} T_END;
 
@@ -574,8 +571,11 @@ void sieve_storage_unref(struct sieve_storage **_storage)
 {
 	struct sieve_storage *storage = *_storage;
 
-	i_assert(storage->refcount > 0);
+	if (storage == NULL)
+		return;
+	*_storage = NULL;
 
+	i_assert(storage->refcount > 0);
 	if (--storage->refcount != 0)
 		return;
 
@@ -592,7 +592,6 @@ void sieve_storage_unref(struct sieve_storage **_storage)
 	i_free(storage->error);
 	event_unref(&storage->event);
 	pool_unref(&storage->pool);
-	*_storage = NULL;
 }
 
 int sieve_storage_setup_bindir(struct sieve_storage *storage, mode_t mode)
diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c
index 3f470c10cce369f82687d972d77164f71f8df79a..837a53e1a35b7b34880c0d7ea2fbf27edc1f10d3 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage.c
@@ -708,10 +708,8 @@ sieve_file_storage_init_default(struct sieve_instance *svinst,
 
 	T_BEGIN {
 		if (sieve_file_storage_do_init_default(fstorage, active_path,
-						       error_r) < 0) {
+						       error_r) < 0)
 			sieve_storage_unref(&storage);
-			storage = NULL;
-		}
 	} T_END;
 
 	return storage;
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index 9230ae720ab813fbf26ba5dd36cd87886b5948fa..5c28ac1315d29ed6a999e3e9220617589c811ec5 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -1123,10 +1123,8 @@ static void imap_filter_sieve_user_deinit(struct mail_user *user)
 
 	sieve_error_handler_unref(&ifsuser->master_ehandler);
 
-	if (ifsuser->storage != NULL)
-		sieve_storage_unref(&ifsuser->storage);
-	if (ifsuser->global_storage != NULL)
-		sieve_storage_unref(&ifsuser->global_storage);
+	sieve_storage_unref(&ifsuser->storage);
+	sieve_storage_unref(&ifsuser->global_storage);
 	sieve_deinit(&ifsuser->svinst);
 	if (ifsuser->dup_db != NULL)
 		mail_duplicate_db_deinit(&ifsuser->dup_db);
diff --git a/src/plugins/imapsieve/imap-sieve.c b/src/plugins/imapsieve/imap-sieve.c
index 683491b7565d18d43b0d575812f8345ee4455164..57f3ef13c64999d181c272838f4b89d18bf20d65 100644
--- a/src/plugins/imapsieve/imap-sieve.c
+++ b/src/plugins/imapsieve/imap-sieve.c
@@ -112,8 +112,7 @@ void imap_sieve_deinit(struct imap_sieve **_isieve)
 
 	sieve_error_handler_unref(&isieve->master_ehandler);
 
-	if (isieve->storage != NULL)
-		sieve_storage_unref(&isieve->storage);
+	sieve_storage_unref(&isieve->storage);
 	sieve_extension_unregister(isieve->ext_imapsieve);
 	sieve_extension_unregister(isieve->ext_vnd_imapsieve);
 	sieve_deinit(&isieve->svinst);