diff --git a/src/lib-sieve/sieve-binary.c b/src/lib-sieve/sieve-binary.c
index 3ec625ef72d4b7998af60dc9ba337ea1357f3fef..7880952c1458651ca8c4b649f81b8fa21f3c7981 100644
--- a/src/lib-sieve/sieve-binary.c
+++ b/src/lib-sieve/sieve-binary.c
@@ -918,7 +918,7 @@ static const void *_file_lazy_load_data
 static buffer_t *_file_lazy_load_buffer
 (struct sieve_binary_file *file, off_t *offset, size_t size)
 {			
-	buffer_t *buffer = buffer_create_static_hard(file->pool, size);
+	buffer_t *buffer = buffer_create_dynamic(file->pool, size);
 	
 	if ( _file_lazy_read
 		(file, offset, buffer_get_space_unsafe(buffer, 0, size), size) ) {