diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 15d467b8706d942327b5321e0fcbf7a311279ef4..6fcc6a0eab20351d6ebcca076627736e239d81c4 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -726,9 +726,10 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne
                 sce->band_type[w*16+g] = NOISE_BT;
                 sce->zeroes[w*16+g] = 0;
                 prev = noise_sfi;
+            } else {
+                if (!sce->zeroes[w*16+g])
+                    prev_sf = sce->sf_idx[w*16+g];
             }
-            if (!sce->zeroes[w*16+g])
-                prev_sf = sce->sf_idx[w*16+g];
         }
     }
 }