diff --git a/formats/format_wav.c b/formats/format_wav.c
index f311522e5f120c55bbac7498541531035ff276cc..17a4af054ba59337d63755f77c52b5f6c7e5d4b0 100644
--- a/formats/format_wav.c
+++ b/formats/format_wav.c
@@ -340,6 +340,10 @@ static void wav_close(struct ast_filestream *s)
 	char zero = 0;
 	struct wav_desc *fs = (struct wav_desc *)s->_private;
 
+	if ((s->mode & O_RDONLY) == O_RDONLY) {
+		return;
+	}
+
 	if (s->filename) {
 		update_header(s->f);
 	}