diff --git a/plugins-multistage.cabal b/plugins-multistage.cabal
--- a/plugins-multistage.cabal
+++ b/plugins-multistage.cabal
@@ -1,5 +1,5 @@
 name:           plugins-multistage
-version:        0.6.2
+version:        0.6.3
 synopsis:       Dynamic linking for embedded DSLs with staged compilation
 description:    Dynamic compilation, linking and loading of functions in
                 staged languages.
@@ -12,7 +12,7 @@
 license-file:   LICENSE
 stability:      experimental
 build-type:     Simple
-cabal-version:  >= 1.14
+cabal-version:  1.14
 tested-with:    GHC==7.6
 
 source-repository head
diff --git a/src/System/Plugins/MultiStage.hs b/src/System/Plugins/MultiStage.hs
--- a/src/System/Plugins/MultiStage.hs
+++ b/src/System/Plugins/MultiStage.hs
@@ -38,6 +38,9 @@
 import BasicTypes (failed)
 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 800
 import GHCi.ObjLink (initObjLinker,loadObj,resolveObjs)
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 802
+import GHCi.ObjLink (ShouldRetainCAFs(..))
+#endif
 #else
 import ObjLink (initObjLinker,loadObj,resolveObjs)
 #endif
@@ -204,7 +207,11 @@
     exists <- doesFileExist oname
     when exists $ removeFile oname
     compileC cname oname opts
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 802
+    initObjLinker RetainCAFs
+#else
     initObjLinker
+#endif
     _ <- loadObj oname
     res <- resolveObjs
 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 800
