diff --git a/elf.cc b/elf.cc
index 8ac7359224cd4c87f4a8692d48fd0b00eba892ea..7334bd4fdfb29f4fea7ccaea4a64b9fbf2af74e1 100644
--- a/elf.cc
+++ b/elf.cc
@@ -330,7 +330,7 @@ namespace elf {
             case R_X86_64_NONE:
                 break;
             case R_X86_64_64:
-                *static_cast<u64*>(addr) = symbol(sym).symbol->st_value + addend;
+                *static_cast<void**>(addr) = symbol(sym).relocated_addr() + addend;
                 break;
             case R_X86_64_RELATIVE:
                 *static_cast<void**>(addr) = _base + addend;