diff --git a/unpin_x86.cpp b/unpin_x86.cpp
index df111406739b3ab7daf5d51f049d1fac6d2462fc..13ce61488b588d24623aa57d934f221bdbf952ed 100644
--- a/unpin_x86.cpp
+++ b/unpin_x86.cpp
@@ -72,7 +72,9 @@ void UnpinX86_t::HandleRetAddrReloc(Instruction_t* from_insn, Relocation_t* relo
 
 		unsigned char newpush[5];
 		newpush[0]=0x68;
-		*(int*)&newpush[1]=(int)wrt_insn_location;
+		const auto newVal=(int)wrt_insn_location;
+		// *(int*)&newpush[1]=(int)wrt_insn_location;
+		memcpy(&newpush[1],&newVal,sizeof(newVal));
 
 		cout<<"Unpin::Updating push32/push64-exe insn:"
 		    <<dec<<from_insn->getBaseID()<<":"<<from_insn->getDisassembly()<<"@"<<hex<<from_insn_location<<" to point at "