diff --git a/libavcodec/ac3.c b/libavcodec/ac3.c
index a51aca07d5b546a1ca29bcf0767b77995e4a90d9..3749d02f0115c18742af33b30363337d9fccbdaf 100644
--- a/libavcodec/ac3.c
+++ b/libavcodec/ac3.c
@@ -175,6 +175,12 @@ void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end,
 {
     int i, j, k, end1, v, address;
 
+    /* special case, if snroffset is -960, set all bap's to zero */
+    if(snroffset == -960) {
+        memset(bap, 0, 256);
+        return;
+    }
+
     i = start;
     j = masktab[start];
     do {