diff --git a/libavcodec/dxtory.c b/libavcodec/dxtory.c
index f7410780924cfcd11eaf970a6af2a6a65056e06d..da43c4700364adb83b2cd5ee92a8f7f7293ece49 100644
--- a/libavcodec/dxtory.c
+++ b/libavcodec/dxtory.c
@@ -70,8 +70,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
     V  = pic->data[2];
     for (h = 0; h < avctx->height; h += 2) {
         for (w = 0; w < avctx->width; w += 2) {
-            AV_WN16A(Y1 + w, AV_RN16A(src));
-            AV_WN16A(Y2 + w, AV_RN16A(src + 2));
+            AV_COPY16(Y1 + w, src);
+            AV_COPY16(Y2 + w, src + 2);
             U[w >> 1] = src[4] + 0x80;
             V[w >> 1] = src[5] + 0x80;
             src += 6;