diff --git a/src/lib-sieve/sieve-binary-file.c b/src/lib-sieve/sieve-binary-file.c
index d17ab4c1a26e0015c64b59cc913fa1a1c1360746..644fed97a4e15186af63df2db014a0823e8bd869 100644
--- a/src/lib-sieve/sieve-binary-file.c
+++ b/src/lib-sieve/sieve-binary-file.c
@@ -346,7 +346,7 @@ sieve_binary_save_to_stream(struct sieve_binary *sbin, struct ostream *stream)
 	header->blocks = blk_count;
 	header->hdr_size = sizeof(*header);
 
-	header->flags &= ~SIEVE_BINARY_FLAG_RESOURCE_LIMIT;
+	header->flags &= ENUM_NEGATE(SIEVE_BINARY_FLAG_RESOURCE_LIMIT);
 	sieve_binary_file_update_header(sbin);
 
 	if (!_save_aligned(sbin, stream, header, sizeof(*header), NULL)) {