diff --git a/src/lib-sievestorage/sieve-storage-save.c b/src/lib-sievestorage/sieve-storage-save.c
index cec51cb1154439f4e683d7128a61be9be1d33c26..8ae489b778020817692577a88095afd5b894e270 100644
--- a/src/lib-sievestorage/sieve-storage-save.c
+++ b/src/lib-sievestorage/sieve-storage-save.c
@@ -330,7 +330,7 @@ int sieve_storage_save_commit(struct sieve_save_context **ctx)
 
 	sieve_storage_save_destroy(ctx);
 
-	return !failed;
+	return ( failed ? -1 : 0 );
 }
 
 void sieve_storage_save_cancel(struct sieve_save_context **ctx)