diff --git a/push64_relocs.cpp b/push64_relocs.cpp
index 82b78bb1334a162c59863b6b3a1873cc22fa6965..67031876f47e27562a6dbf95855c790f8104cd73 100644
--- a/push64_relocs.cpp
+++ b/push64_relocs.cpp
@@ -90,7 +90,8 @@ void Push64Relocs_t::HandlePush64Relocation(Instruction_t *insn, Relocation_t *r
 	 * we know that the opcode is one byte.
 	 * The pushed value will start at the 1th offset.
 	 */
-	push_addr = *((VirtualOffset_t*)(&push_data_bits[1]));
+	// push_addr = *((VirtualOffset_t*)(push_data_bits+1));
+	memcpy(&push_addr,&push_data_bits[1], 4);
 
 	if (*m_verbose)
 		cout << "push_addr: 0x" << std::hex << push_addr << endl;