diff --git a/src/lib-sieve/util/edit-mail.c b/src/lib-sieve/util/edit-mail.c
index 1c7423067a21afa3c0a5e8f89ad18a10615bab56..7cccb9790bc0f456a3c56f3c6d58683dd93917e4 100644
--- a/src/lib-sieve/util/edit-mail.c
+++ b/src/lib-sieve/util/edit-mail.c
@@ -1970,7 +1970,8 @@ static ssize_t edit_mail_istream_read(struct istream_private *stream)
 
 			if ( append_v_offset == hdr_size - 1 ) {
 				/* Strip final CR too when it is present */
-				if ( stream->buffer[stream->pos-1] == '\r' ) {
+				if ( stream->buffer != NULL &&
+					stream->buffer[stream->pos-1] == '\r' ) {
 					stream->pos--;
 					ret--;
 				}