diff --git a/buildwrapper.cabal b/buildwrapper.cabal
--- a/buildwrapper.cabal
+++ b/buildwrapper.cabal
@@ -1,5 +1,5 @@
 name:           buildwrapper
-version:        0.8.4
+version:        0.8.5
 cabal-version:  >= 1.8
 build-type:     Simple
 license:        BSD3
diff --git a/src/Language/Haskell/BuildWrapper/Cabal.hs b/src/Language/Haskell/BuildWrapper/Cabal.hs
--- a/src/Language/Haskell/BuildWrapper/Cabal.hs
+++ b/src/Language/Haskell/BuildWrapper/Cabal.hs
@@ -543,7 +543,11 @@
         let pkg
                   | isLib =
                     ["-package-name",n]
+#if __GLASGOW_HASKELL__ < 706                    
                   | inplaceExist = ["-package-conf", inplace]
+#else
+                  | inplaceExist = ["-package-db", inplace]
+#endif
                   | otherwise = []
         return (pkg ++ DCD.ghcOptions tgt)
 
diff --git a/src/Language/Haskell/BuildWrapper/GHC.hs b/src/Language/Haskell/BuildWrapper/GHC.hs
--- a/src/Language/Haskell/BuildWrapper/GHC.hs
+++ b/src/Language/Haskell/BuildWrapper/GHC.hs
@@ -298,7 +298,7 @@
             logAction :: IORef [BWNote] -> DynFlags -> Severity -> SrcSpan -> PprStyle -> Message -> IO ()
 #endif
             logAction ref df s loc style msg
-                | (Just status)<-bwSeverity s=do
+                | (Just status)<-bwSeverity df s=do
                         let n=BWNote { bwnLocation = ghcSpanToBWLocation base_dir loc
                                  , bwnStatus = status
                                  , bwnTitle = removeBaseDir base_dir $ removeStatus status $ showSDUser (qualName style,qualModule style) df msg
@@ -306,11 +306,11 @@
                         modifyIORef ref $  \ ns -> ns ++ [n]
                 | otherwise=return ()
             
-            bwSeverity :: Severity -> Maybe BWNoteStatus
-            bwSeverity SevWarning = Just BWWarning       
-            bwSeverity SevError   = Just BWError
-            bwSeverity SevFatal   = Just BWError
-            bwSeverity _          = Nothing
+            bwSeverity :: DynFlags -> Severity -> Maybe BWNoteStatus
+            bwSeverity df SevWarning = Just (if dopt Opt_WarnIsError df then BWError else BWWarning)     
+            bwSeverity _  SevError   = Just BWError
+            bwSeverity _  SevFatal   = Just BWError
+            bwSeverity _ _           = Nothing
             
    
 -- | Convert 'GHC.Messages' to '[BWNote]'.
@@ -1004,7 +1004,7 @@
 
 -- | convert a GHC warning message to our note type
 ghcWarnMsgToNote :: DynFlags -> FilePath -> WarnMsg -> BWNote
-ghcWarnMsgToNote df= ghcMsgToNote df BWWarning
+ghcWarnMsgToNote df= ghcMsgToNote df (if dopt Opt_WarnIsError df then BWError else BWWarning)
 
 -- | convert a GHC message to our note type
 -- Note that we do *not* include the extra info, since that information is
