diff --git a/Data/Conduit/Async.hs b/Data/Conduit/Async.hs
--- a/Data/Conduit/Async.hs
+++ b/Data/Conduit/Async.hs
@@ -1,4 +1,6 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE PackageImports #-}
 {-# LANGUAGE TupleSections #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE RecordWildCards #-}
@@ -13,17 +15,19 @@
                           , drainTo
                           ) where
 
-import           Control.Applicative
-import           Control.Concurrent.Async.Lifted
-import           Control.Concurrent.STM
-import           Control.Exception.Lifted
-import           Control.Monad.IO.Class
-import           Control.Monad.Loops
-import           Control.Monad.Trans.Class
-import           Control.Monad.Trans.Control
-import           Data.Conduit
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative
+#endif
+import Control.Concurrent.Async.Lifted
+import Control.Concurrent.STM
+import Control.Exception.Lifted
+import Control.Monad.IO.Class
+import Control.Monad.Loops
+import Control.Monad.Trans.Class
+import Control.Monad.Trans.Control
+import Data.Conduit
 
-import           Data.Conduit.Async.Composition
+import Data.Conduit.Async.Composition
 
 -- | Gather output values asynchronously from an action in the base monad and
 --   then yield them downstream.  This provides a means of working around the
diff --git a/Data/Conduit/Async/Composition.hs b/Data/Conduit/Async/Composition.hs
--- a/Data/Conduit/Async/Composition.hs
+++ b/Data/Conduit/Async/Composition.hs
@@ -1,9 +1,11 @@
 {-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PackageImports #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -22,9 +24,11 @@
                                       , runCConduit
                                       ) where
 
+#if __GLASGOW_HASKELL__ < 710
+import           Control.Applicative
+#endif
 import Conduit
-import Control.Applicative
-import qualified Control.Concurrent.Async as A
+import qualified "async" Control.Concurrent.Async as A
 import Control.Concurrent.Async.Lifted hiding (link2)
 import Control.Concurrent.STM
 import Control.Exception (finally)
diff --git a/Data/Conduit/TMChan.hs b/Data/Conduit/TMChan.hs
--- a/Data/Conduit/TMChan.hs
+++ b/Data/Conduit/TMChan.hs
@@ -1,4 +1,9 @@
-{-# LANGUAGE NoMonomorphismRestriction, FlexibleContexts, RankNTypes,KindSignatures #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoMonomorphismRestriction #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE KindSignatures #-}
+
 -- | * Introduction
 --
 --   Contains a simple source and sink for linking together conduits in
@@ -53,7 +58,9 @@
                            , mergeConduits
                            ) where
 
-import Control.Applicative
+#if __GLASGOW_HASKELL__ < 710
+import           Control.Applicative
+#endif
 import Control.Monad
 import Control.Monad.IO.Class ( liftIO, MonadIO )
 import Control.Monad.Trans.Class
diff --git a/stm-conduit.cabal b/stm-conduit.cabal
--- a/stm-conduit.cabal
+++ b/stm-conduit.cabal
@@ -1,9 +1,7 @@
 Name:                stm-conduit
-Version:             2.6.1
-Synopsis:            Introduces conduits to channels, and promotes using
-                     conduits concurrently.
-Description:         Provides two simple conduit wrappers around STM
-                     channels - a source and a sink.
+Version:             2.7.0
+Synopsis:            Introduces conduits to channels, and promotes using conduits concurrently.
+Description:         Provides two simple conduit wrappers around STM channels - a source and a sink.
 Homepage:            https://github.com/wowus/stm-conduit
 License:             BSD3
 License-file:        LICENSE
@@ -13,6 +11,9 @@
 
 Build-type:          Simple
 
+tested-with: GHC >= 7.6 && < 7.11
+-- selects GHC 7.4.1, 7.4.2, 7.6.1, 7.6.2, and 7.6.3
+
 Cabal-version:       >=1.8
 
 Library
@@ -49,7 +50,7 @@
 
 test-suite stm-conduit-doctests
     type:           exitcode-stdio-1.0
-    main-is:        DocTest.hs
+    main-is:        DocTests.hs
     ghc-options:    -threaded
     hs-source-dirs: test/
                     ./
diff --git a/test/DocTest.hs b/test/DocTest.hs
deleted file mode 100644
--- a/test/DocTest.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-import Test.DocTest
-
-main :: IO ()
-main = doctest [
-  "-packageghc"
-  , "-isrc"
-  , "-idist/build/autogen/"
-  , "-optP-include"
-  , "-optPdist/build/autogen/cabal_macros.h"
-  , "Data/Conduit/Async/Composition.hs"
-  ]
diff --git a/test/DocTests.hs b/test/DocTests.hs
new file mode 100644
--- /dev/null
+++ b/test/DocTests.hs
@@ -0,0 +1,14 @@
+module Main where
+
+import Test.DocTest
+
+main :: IO ()
+main = doctest [
+  "-packageghc"
+  , "-isrc"
+  , "-idist/build/autogen/"
+  , "-optP-include"
+  , "-optPdist/build/autogen/cabal_macros.h"
+  , "-cpp"
+  , "Data/Conduit/Async/Composition.hs"
+  ]
