diff --git a/camellia-crypt-internal.c b/camellia-crypt-internal.c
index c38c225ffc725c94ef4f4e2ed028cc94101512dc..679c4db169288da9955a1cdfd941e07ad6776c16 100644
--- a/camellia-crypt-internal.c
+++ b/camellia-crypt-internal.c
@@ -76,8 +76,6 @@
       ^ T->sp3033[((x) >> 40) & 0xff]			\
       ^ T->sp4404[((x) >> 32) & 0xff];			\
     /* il == (t1^t3^t4),(t1^t2^t4),(t1^t2^t3),(t2^t3^t4) */	\
-    __il ^= (k) >> 32;						\
-    __ir ^= (k) & 0xffffffff;					\
     __ir ^= __il;						\
     /* ir == (t1^t3^t4^t6^t7^t8),(t1^t2^t4^t5^t7^t8),		\
              (t1^t2^t3^t5^t6^t8),(t2^t3^t4^t5^t6^t7)		\
@@ -88,6 +86,7 @@
     /* il == (t1^t2^t6^t7^t8),(t2^t3^t5^t7^t8),			\
              (t3^t4^t5^t6^t8),(t1^t4^t5^t6^t7)			\
           == y5,y6,y7,y8 */					\
+    y ^= (k);							\
     y ^= ((uint64_t) __ir << 32) | __il;			\
   } while (0)