diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h
index 2834036be6cf5a1e48d9e50e889ce62db2b3904f..4c123dbe281ece2cc1729f2c7f1ea0b6d9d4bad0 100644
--- a/arch/arm/include/asm/syscall.h
+++ b/arch/arm/include/asm/syscall.h
@@ -55,7 +55,7 @@ static inline void syscall_get_arguments(struct task_struct *task,
 					 unsigned long *args)
 {
 	BUG_ON(i + n > 6);
-	memcpy(args, &regs->ARM_r1 + i, n * sizeof(args[0]));
+	memcpy(args, &regs->ARM_r0 + i, n * sizeof(args[0]));
 }
 
 static inline void syscall_set_arguments(struct task_struct *task,
@@ -64,7 +64,7 @@ static inline void syscall_set_arguments(struct task_struct *task,
 					 const unsigned long *args)
 {
 	BUG_ON(i + n > 6);
-	memcpy(&regs->ARM_r1 + i, args, n * sizeof(args[0]));
+	memcpy(&regs->ARM_r0 + i, args, n * sizeof(args[0]));
 }
 
 static inline int syscall_get_arch(struct task_struct *task,