diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c
index cdd5ae5658fc09de41257988d05a2c4e9609b3c6..2863c0da6bb6917457cb138022d23c669d30dac5 100644
--- a/rts/linker/PEi386.c
+++ b/rts/linker/PEi386.c
@@ -1862,6 +1862,7 @@ ocGetNames_PEi386 ( ObjectCode* oc )
           if (result != NULL || dllInstance == 0) {
               errorBelch("Could not load `%s'. Reason: %s\n",
                          (char*)dllName, result);
+              stgFree((void*)result);
               return false;
           }