diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 765f9a7e3ef4963e4a60ae076089f6a076a9e806..e610a8006f753ed070950037c10802852b01b5c7 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -200,8 +200,8 @@ WINDOW_FUNC(long_start)
     float *out = sce->ret;
 
     dsp->vector_fmul(out, audio, lwindow, 1024);
-    memcpy(out + 1024, audio, sizeof(out[0]) * 448);
-    dsp->vector_fmul_reverse(out + 1024 + 448, audio, swindow, 128);
+    memcpy(out + 1024, audio + 1024, sizeof(out[0]) * 448);
+    dsp->vector_fmul_reverse(out + 1024 + 448, audio + 1024 + 448, swindow, 128);
     memset(out + 1024 + 576, 0, sizeof(out[0]) * 448);
 }