diff --git a/Git/Libgit2.hs b/Git/Libgit2.hs
--- a/Git/Libgit2.hs
+++ b/Git/Libgit2.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
@@ -94,7 +95,9 @@
 import qualified Foreign.ForeignPtr.Unsafe as FU
 import           Foreign.Marshal.Alloc
 import           Foreign.Marshal.Array
+#ifdef missing_calloc
 import           Foreign.Marshal.MissingAlloc
+#endif
 import           Foreign.Marshal.Utils
 import           Foreign.Ptr
 import           Foreign.Storable
diff --git a/gitlib-libgit2.cabal b/gitlib-libgit2.cabal
--- a/gitlib-libgit2.cabal
+++ b/gitlib-libgit2.cabal
@@ -1,5 +1,5 @@
 Name:                gitlib-libgit2
-Version:             3.1.0.3
+Version:             3.1.0.4
 Synopsis:            Libgit2 backend for gitlib
 License-file:        LICENSE
 License:             MIT
@@ -51,7 +51,6 @@
         , filepath             >= 1.3.0
         , lifted-async         >= 0.1.0
         , lifted-base          >= 0.2.0.2
-        , missing-foreign      >= 0.1.1
         , mmorph               >= 1.0.0
         , monad-control        >= 1.0
         , monad-logger         >= 0.3.4.1
@@ -73,3 +72,6 @@
         Git.Libgit2.Internal
         Git.Libgit2.Trace
         Git.Libgit2.Types
+    if impl (ghc < 7.10)
+        build-depends: missing-foreign >= 0.1.1
+        cpp-options: -Dmissing_calloc
