diff --git a/libavcodec/aac.c b/libavcodec/aac.c
index b924e7bd51f2b544073728c74bed1b947261c6d1..ace82ab62aa80ee423dfb11b12c49502b6705ab1 100644
--- a/libavcodec/aac.c
+++ b/libavcodec/aac.c
@@ -597,7 +597,7 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
 static void decode_pulses(Pulse * pulse, GetBitContext * gb, const uint16_t * swb_offset) {
     int i;
     pulse->num_pulse = get_bits(gb, 2) + 1;
-    pulse->pos[0]    = get_bits(gb, 5) + swb_offset[get_bits(gb, 6)];
+    pulse->pos[0]    = swb_offset[get_bits(gb, 6)] + get_bits(gb, 5);
     pulse->amp[0]    = get_bits(gb, 4);
     for (i = 1; i < pulse->num_pulse; i++) {
         pulse->pos[i] = get_bits(gb, 5) + pulse->pos[i-1];