diff --git a/asm/asm-impl.c b/asm/asm-impl.c
index a218682a2ed3226485d6fcb3e9f2d9a0baddd78e..8c9b2fb3e6de31c3ad24fb8b89f93c84e518435c 100644
--- a/asm/asm-impl.c
+++ b/asm/asm-impl.c
@@ -61,7 +61,8 @@ int asm_setjmp(asm_jmp_buf env) {
     "movq %%r15,  %[r15] \t\n"
     "movq %%rbx,  %[rbx] \t\n"
     "movq %%rbp,  %[rbp] \t\n"
-    "movq %%rsp,  %[rsp] \t\n"
+    "lea 8(%%rsp), %%rax"
+    "movq %%rax,  %[rsp] \t\n"
     "xor  %%eax,  %%eax  \t\n"
     :[pc] "=m" (env[JB_PC]), [r12] "=m" (env[JB_R12]), [r13] "=m" (env[JB_R13]), [r14] "=m" (env[JB_R14]), [r15] "=m" (env[JB_R15]), 
      [rbx] "=m" (env[JB_RBX]), [rbp] "=m" (env[JB_RBP]) , [rsp] "=m" (env[JB_RSP])