diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c
index 73d21b401b..a81c0016eb 100644
--- a/src/switch_ivr_play_say.c
+++ b/src/switch_ivr_play_say.c
@@ -420,7 +420,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se
 		}
 	}
 
-	fh->pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
+	vval = switch_channel_get_variable(channel, "enable_file_write_buffering");
+	if (!vval || !switch_true(vval)) {
+		fh->pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
+	}
 
 	if (switch_core_file_open(fh,
 							  file,