diff --git a/afl_transforms/tools/zafl/zafl.cpp b/afl_transforms/tools/zafl/zafl.cpp
index 306df83b08ac0bee05346a6558cc88dbf1caa3d6..8a07e25cacd601c63e7dacde6d700612d013d583 100644
--- a/afl_transforms/tools/zafl/zafl.cpp
+++ b/afl_transforms/tools/zafl/zafl.cpp
@@ -444,7 +444,8 @@ void Zafl_t::insertForkServer(Instruction_t* p_entry)
 
 	// insert the instrumentation
 	auto tmp=p_entry;
-    	(void)insertAssemblyBefore(getFileIR(),tmp," push rdi") ;
+	(void)insertAssemblyBefore(getFileIR(), tmp, "lea rsp, [rsp-128]");
+    	tmp=  insertAssemblyAfter(getFileIR(),tmp," push rdi") ;
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," push rsi ") ;
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," push rbp") ;
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," push rdx") ;
@@ -476,7 +477,7 @@ void Zafl_t::insertForkServer(Instruction_t* p_entry)
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," pop rdx");
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," pop rbp");
 	tmp=  insertAssemblyAfter(getFileIR(), tmp," pop rsi");
-	tmp=  insertAssemblyAfter(getFileIR(), tmp," pop rdi");
+	tmp=  insertAssemblyAfter(getFileIR(), tmp," lea rsp, [rsp+128]");
 }
 
 void Zafl_t::insertForkServer(string p_forkServerEntry)