diff --git a/LLVM/FFI/Core.hsc b/LLVM/FFI/Core.hsc
--- a/LLVM/FFI/Core.hsc
+++ b/LLVM/FFI/Core.hsc
@@ -389,6 +389,7 @@
     , createFunctionPassManager
     , createPassManager
     , ptrDisposePassManager
+    , disposePassManager
     , finalizeFunctionPassManager
     , initializeFunctionPassManager
     , runFunctionPassManager
@@ -1271,6 +1272,8 @@
     :: IO PassManagerRef
 foreign import ccall unsafe "&LLVMDisposePassManager" ptrDisposePassManager
     :: FunPtr (PassManagerRef -> IO ())
+foreign import ccall unsafe "LLVMDisposePassManager" disposePassManager
+    :: PassManagerRef -> IO ()
 foreign import ccall unsafe "LLVMDumpModule" dumpModule
     :: ModuleRef -> IO ()
 foreign import ccall unsafe "LLVMFinalizeFunctionPassManager" finalizeFunctionPassManager
diff --git a/LLVM/Util/Optimize.hs b/LLVM/Util/Optimize.hs
--- a/LLVM/Util/Optimize.hs
+++ b/LLVM/Util/Optimize.hs
@@ -31,6 +31,7 @@
 --    addVerifierPass passes -- XXX does not exist
 
     rc <- FFI.runPassManager passes m
+    FFI.disposePassManager passes
     -- XXX discard pass manager?
 
     return (fromIntegral rc)
diff --git a/llvm.cabal b/llvm.cabal
--- a/llvm.cabal
+++ b/llvm.cabal
@@ -1,9 +1,12 @@
 name: llvm
-version: 0.7.1.1
+version: 0.7.1.2
 license: BSD3
 license-file: LICENSE
 synopsis: Bindings to the LLVM compiler toolkit.
 description: Bindings to the LLVM compiler toolkit.
+             .
+             * New in 0.7.1.2: Free pass manager after optimization
+             .
              * New in 0.7.1.0: More attributes
              .
              * New in 0.7.0.1: MacOS fixes.
