diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c
index 9a0105b85b1619bd310099a880d3e704d1191049..e6a4f83ac61b5457e3ed061bb8601b364da6a2e5 100644
--- a/rts/linker/PEi386.c
+++ b/rts/linker/PEi386.c
@@ -2096,6 +2096,15 @@ ocResolve_PEi386 ( ObjectCode* oc )
                    *(uint32_t *)pP = (uint32_t)v;
                    break;
                }
+            case 14: /* R_X86_64_PC64 (ELF constant 24) - IMAGE_REL_AMD64_SREL32 (PE constant 14) */
+               {
+                   /* mingw will emit this for a pc-rel 64 relocation */
+                   uint64_t A;
+                   checkProddableBlock(oc, pP, 8);
+                   A = *(uint64_t*)pP;
+                   *(uint64_t *)pP = S + A - (intptr_t)pP;
+                   break;
+               }
             case 4: /* R_X86_64_PC32 (ELF constant 2) - IMAGE_REL_AMD64_REL32 (PE constant 4) */
                {
                    intptr_t v;