diff --git a/AWS/Class.hs b/AWS/Class.hs
--- a/AWS/Class.hs
+++ b/AWS/Class.hs
@@ -6,6 +6,7 @@
  , DeriveDataTypeable
  , ExistentialQuantification
  , StandaloneDeriving
+ , CPP
  #-}
 
 module AWS.Class
@@ -36,9 +37,14 @@
     , defaultLiftBaseWith
     , defaultRestoreM
     )
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (monadThrow)
+#endif
 import Control.Exception (Exception)
 import Data.Typeable (Typeable)
+#if !MIN_VERSION_conduit(1,1,0)
 import Data.Conduit (MonadThrow, monadThrow)
+#endif
 import Text.XML.Stream.Parse (XmlException)
 
 import qualified Network.HTTP.Conduit as HTTP
diff --git a/AWS/CloudWatch.hs b/AWS/CloudWatch.hs
--- a/AWS/CloudWatch.hs
+++ b/AWS/CloudWatch.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.CloudWatch
     ( -- * CloudWatch Environment
@@ -13,7 +13,11 @@
     ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#else
 import Data.Conduit
+#endif
 import Control.Monad.IO.Class (MonadIO)
 import qualified Control.Monad.State as State
 import qualified Network.HTTP.Conduit as HTTP
diff --git a/AWS/CloudWatch/Alarm.hs b/AWS/CloudWatch/Alarm.hs
--- a/AWS/CloudWatch/Alarm.hs
+++ b/AWS/CloudWatch/Alarm.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RecordWildCards, CPP #-}
 module AWS.CloudWatch.Alarm
     ( describeAlarms
     , describeAlarmsForMetric
@@ -11,6 +11,9 @@
     ) where
 
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.Time (UTCTime)
diff --git a/AWS/CloudWatch/Internal.hs b/AWS/CloudWatch/Internal.hs
--- a/AWS/CloudWatch/Internal.hs
+++ b/AWS/CloudWatch/Internal.hs
@@ -1,9 +1,12 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards, CPP #-}
 
 module AWS.CloudWatch.Internal
     where
 
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.ByteString (ByteString)
 import Data.Text (Text)
 import Data.Conduit
diff --git a/AWS/CloudWatch/Metric.hs b/AWS/CloudWatch/Metric.hs
--- a/AWS/CloudWatch/Metric.hs
+++ b/AWS/CloudWatch/Metric.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards, CPP #-}
 
 module AWS.CloudWatch.Metric
     ( listMetrics
@@ -6,6 +6,9 @@
     , putMetricData
     ) where
 
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Text (Text)
 import Data.Time (UTCTime)
 import Data.Conduit
diff --git a/AWS/EC2.hs b/AWS/EC2.hs
--- a/AWS/EC2.hs
+++ b/AWS/EC2.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2
     ( -- * EC2 Environment
@@ -42,7 +41,11 @@
     , module AWS.EC2.ConversionTask
     ) where
 
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#else
 import Data.Conduit
+#endif
 import qualified Control.Monad.State as State
 import Data.Text (Text)
 import Data.ByteString (ByteString)
diff --git a/AWS/EC2/Acl.hs b/AWS/EC2/Acl.hs
--- a/AWS/EC2/Acl.hs
+++ b/AWS/EC2/Acl.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.Acl
     ( describeNetworkAcls
@@ -14,6 +14,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Address.hs b/AWS/EC2/Address.hs
--- a/AWS/EC2/Address.hs
+++ b/AWS/EC2/Address.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.Address
     ( describeAddresses
@@ -15,6 +15,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/AvailabilityZone.hs b/AWS/EC2/AvailabilityZone.hs
--- a/AWS/EC2/AvailabilityZone.hs
+++ b/AWS/EC2/AvailabilityZone.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.AvailabilityZone
     ( describeAvailabilityZones
@@ -9,6 +9,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/ConversionTask.hs b/AWS/EC2/ConversionTask.hs
--- a/AWS/EC2/ConversionTask.hs
+++ b/AWS/EC2/ConversionTask.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RecordWildCards, CPP #-}
 module AWS.EC2.ConversionTask
     ( describeConversionTasks
     , cancelConversionTask
@@ -7,6 +7,9 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.XML.Types (Event)
diff --git a/AWS/EC2/Image.hs b/AWS/EC2/Image.hs
--- a/AWS/EC2/Image.hs
+++ b/AWS/EC2/Image.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.Image
     ( describeImages
@@ -14,6 +14,9 @@
 import Data.Conduit
 import Control.Applicative
 import Control.Monad (join)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Instance.hs b/AWS/EC2/Instance.hs
--- a/AWS/EC2/Instance.hs
+++ b/AWS/EC2/Instance.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.Instance
     ( describeInstances
@@ -22,6 +22,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 import Data.Maybe (fromMaybe, fromJust)
 import qualified Data.Map as Map
 import Control.Monad
diff --git a/AWS/EC2/Internal.hs b/AWS/EC2/Internal.hs
--- a/AWS/EC2/Internal.hs
+++ b/AWS/EC2/Internal.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, CPP #-}
 
 module AWS.EC2.Internal
     ( module AWS.Class
@@ -19,6 +18,9 @@
 
 import Control.Monad.IO.Class (MonadIO)
 import Control.Monad.Trans.Class (lift)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow)
+#endif
 import qualified Network.HTTP.Conduit as HTTP
 import Data.ByteString.Char8 ()
 import Control.Applicative
diff --git a/AWS/EC2/KeyPair.hs b/AWS/EC2/KeyPair.hs
--- a/AWS/EC2/KeyPair.hs
+++ b/AWS/EC2/KeyPair.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.KeyPair
     ( describeKeyPairs
@@ -12,6 +12,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Metadata.hs b/AWS/EC2/Metadata.hs
--- a/AWS/EC2/Metadata.hs
+++ b/AWS/EC2/Metadata.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 -- | EC2 Meta-data service.
 --   This is available to use within EC2/VPC instance.
 module AWS.EC2.Metadata
@@ -37,6 +39,9 @@
 import Data.Conduit
 import Network.HTTP.Conduit hiding (path)
 import Control.Monad.IO.Class (liftIO)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (runResourceT)
+#endif
 import Data.Monoid
 import Control.Applicative
 import Control.Exception
diff --git a/AWS/EC2/NetworkInterface.hs b/AWS/EC2/NetworkInterface.hs
--- a/AWS/EC2/NetworkInterface.hs
+++ b/AWS/EC2/NetworkInterface.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.NetworkInterface
     ( assignPrivateIpAddresses
@@ -15,6 +15,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/NetworkInterfaceAttribute.hs b/AWS/EC2/NetworkInterfaceAttribute.hs
--- a/AWS/EC2/NetworkInterfaceAttribute.hs
+++ b/AWS/EC2/NetworkInterfaceAttribute.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, Rank2Types #-}
+{-# LANGUAGE FlexibleContexts, Rank2Types, CPP #-}
 module AWS.EC2.NetworkInterfaceAttribute
    ( describeNetworkInterfaceDescription
    , describeNetworkInterfaceGroupSet
@@ -12,7 +12,12 @@
    ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+import Data.Conduit (Consumer)
+#else
 import Data.Conduit (Consumer, MonadBaseControl, MonadResource)
+#endif
 import Data.XML.Types (Event)
 
 import AWS.EC2.Internal (EC2, groupSetSink, networkInterfaceAttachmentSink)
diff --git a/AWS/EC2/PlacementGroup.hs b/AWS/EC2/PlacementGroup.hs
--- a/AWS/EC2/PlacementGroup.hs
+++ b/AWS/EC2/PlacementGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 module AWS.EC2.PlacementGroup
     ( describePlacementGroups
     , createPlacementGroup
@@ -6,6 +6,9 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.XML.Types (Event)
diff --git a/AWS/EC2/Query.hs b/AWS/EC2/Query.hs
--- a/AWS/EC2/Query.hs
+++ b/AWS/EC2/Query.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.Query
     ( ec2Query
@@ -13,6 +13,9 @@
 import           Data.ByteString.Lazy.Char8 ()
 
 import Data.XML.Types (Event(..))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 import Data.Conduit
 import qualified Data.Conduit.List as CL
 import qualified Text.XML.Stream.Parse as XmlP
diff --git a/AWS/EC2/Region.hs b/AWS/EC2/Region.hs
--- a/AWS/EC2/Region.hs
+++ b/AWS/EC2/Region.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.Region
     ( describeRegions
@@ -9,6 +9,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Route.hs b/AWS/EC2/Route.hs
--- a/AWS/EC2/Route.hs
+++ b/AWS/EC2/Route.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RecordWildCards, CPP #-}
 module AWS.EC2.Route
     ( createRoute
     , deleteRoute
@@ -6,7 +6,11 @@
     ) where
 
 import Data.ByteString (ByteString)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#else
 import Data.Conduit (MonadBaseControl, MonadResource)
+#endif
 import Data.IP (AddrRange, IPv4)
 import Data.Text (Text)
 
diff --git a/AWS/EC2/RouteTable.hs b/AWS/EC2/RouteTable.hs
--- a/AWS/EC2/RouteTable.hs
+++ b/AWS/EC2/RouteTable.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.RouteTable
     ( associateRouteTable
@@ -13,6 +13,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/SecurityGroup.hs b/AWS/EC2/SecurityGroup.hs
--- a/AWS/EC2/SecurityGroup.hs
+++ b/AWS/EC2/SecurityGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.SecurityGroup
     ( describeSecurityGroups
@@ -16,6 +16,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Snapshot.hs b/AWS/EC2/Snapshot.hs
--- a/AWS/EC2/Snapshot.hs
+++ b/AWS/EC2/Snapshot.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.Snapshot
     ( describeSnapshots
@@ -14,6 +14,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Subnets.hs b/AWS/EC2/Subnets.hs
--- a/AWS/EC2/Subnets.hs
+++ b/AWS/EC2/Subnets.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.Subnets
     ( describeSubnets
@@ -10,6 +10,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Tag.hs b/AWS/EC2/Tag.hs
--- a/AWS/EC2/Tag.hs
+++ b/AWS/EC2/Tag.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.EC2.Tag
     ( describeTags
@@ -7,8 +7,13 @@
     ) where
 
 import Data.Text (Text)
-import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+import Data.Conduit (ResumableSource)
+#else
+import Data.Conduit
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Util.hs b/AWS/EC2/Util.hs
--- a/AWS/EC2/Util.hs
+++ b/AWS/EC2/Util.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleContexts, ScopedTypeVariables, CPP #-}
 
 module AWS.EC2.Util
     ( list
@@ -19,6 +19,9 @@
 import Safe
 import qualified Control.Concurrent as CC
 import Control.Monad.IO.Class (liftIO, MonadIO)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#endif
 import Data.Text (Text)
 import qualified Data.Text as T
 import Control.Applicative
diff --git a/AWS/EC2/VPC.hs b/AWS/EC2/VPC.hs
--- a/AWS/EC2/VPC.hs
+++ b/AWS/EC2/VPC.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.EC2.VPC
     ( associateDhcpOptions
@@ -35,6 +35,9 @@
 import Data.Conduit
 import Data.IP (IPv4, AddrRange)
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Types
diff --git a/AWS/EC2/Volume.hs b/AWS/EC2/Volume.hs
--- a/AWS/EC2/Volume.hs
+++ b/AWS/EC2/Volume.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 module AWS.EC2.Volume
     ( describeVolumes
     , createVolume
@@ -16,6 +16,9 @@
 import Data.XML.Types (Event)
 import Data.Conduit
 import Control.Applicative
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadBaseControl, MonadResource)
+#endif
 
 import AWS.EC2.Internal
 import AWS.EC2.Params
diff --git a/AWS/ELB.hs b/AWS/ELB.hs
--- a/AWS/ELB.hs
+++ b/AWS/ELB.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.ELB
     ( -- * ELB Environment
@@ -12,7 +12,11 @@
     ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#else
 import Data.Conduit
+#endif
 import Control.Monad.IO.Class (MonadIO)
 import qualified Control.Monad.State as State
 import qualified Network.HTTP.Conduit as HTTP
diff --git a/AWS/ELB/Internal.hs b/AWS/ELB/Internal.hs
--- a/AWS/ELB/Internal.hs
+++ b/AWS/ELB/Internal.hs
@@ -1,9 +1,12 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.ELB.Internal
     where
 
 import Data.ByteString (ByteString)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Data.XML.Types (Event(..))
 
diff --git a/AWS/ELB/LoadBalancer.hs b/AWS/ELB/LoadBalancer.hs
--- a/AWS/ELB/LoadBalancer.hs
+++ b/AWS/ELB/LoadBalancer.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards, CPP #-}
 
 module AWS.ELB.LoadBalancer
     ( describeLoadBalancers
@@ -27,6 +27,9 @@
     ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Control.Applicative
 import Data.XML.Types (Event(..))
diff --git a/AWS/Lib/FromText.hs b/AWS/Lib/FromText.hs
--- a/AWS/Lib/FromText.hs
+++ b/AWS/Lib/FromText.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RankNTypes, OverloadedStrings, TemplateHaskell, FlexibleInstances #-}
+{-# LANGUAGE RankNTypes, OverloadedStrings, TemplateHaskell, FlexibleInstances, CPP #-}
 
 module AWS.Lib.FromText
     ( FromText(..)
@@ -14,7 +14,11 @@
 
 import Control.Applicative ((<$>))
 import Control.Monad
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow)
+#else
 import Data.Conduit (MonadThrow)
+#endif
 import Data.IP (IPv4, AddrRange)
 import Data.Monoid ((<>))
 import Data.Text (Text)
diff --git a/AWS/Lib/Parser.hs b/AWS/Lib/Parser.hs
--- a/AWS/Lib/Parser.hs
+++ b/AWS/Lib/Parser.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE FlexibleContexts, RankNTypes, ScopedTypeVariables, FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE CPP #-}
 
 module AWS.Lib.Parser
     ( RequestId
@@ -24,6 +25,9 @@
 import Data.ByteString (ByteString)
 import Data.Char (isSpace)
 import Data.Conduit
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow)
+#endif
 import qualified Data.Conduit.List as CL
 import qualified Data.Text as T
 import qualified Text.XML.Stream.Parse as XML
diff --git a/AWS/Lib/Query.hs b/AWS/Lib/Query.hs
--- a/AWS/Lib/Query.hs
+++ b/AWS/Lib/Query.hs
@@ -36,6 +36,9 @@
 #if !MIN_VERSION_conduit(1,0,16)
 import qualified Data.Conduit.Internal as CI
 #endif
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadResource, MonadBaseControl)
+#endif
 import qualified Network.HTTP.Conduit as HTTP
 import qualified Text.XML.Stream.Parse as XmlP
 import Text.XML.Stream.Parse (XmlException)
diff --git a/AWS/RDS.hs b/AWS/RDS.hs
--- a/AWS/RDS.hs
+++ b/AWS/RDS.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.RDS
     ( -- * RDS Environment
@@ -25,7 +25,11 @@
     ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
+#else
 import Data.Conduit
+#endif
 import Control.Monad.IO.Class (MonadIO)
 import qualified Control.Monad.State as State
 import qualified Network.HTTP.Conduit as HTTP
diff --git a/AWS/RDS/DBInstance.hs b/AWS/RDS/DBInstance.hs
--- a/AWS/RDS/DBInstance.hs
+++ b/AWS/RDS/DBInstance.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards, CPP #-}
 
 module AWS.RDS.DBInstance
     ( describeDBInstances
@@ -11,6 +11,9 @@
 
 import Data.Text (Text)
 import Data.Conduit
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Control.Applicative
 import Data.XML.Types (Event(..))
 import Data.Maybe (catMaybes)
diff --git a/AWS/RDS/DBParameterGroup.hs b/AWS/RDS/DBParameterGroup.hs
--- a/AWS/RDS/DBParameterGroup.hs
+++ b/AWS/RDS/DBParameterGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.DBParameterGroup
     ( describeDBParameterGroups
@@ -7,7 +7,12 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+import Data.Conduit (Consumer)
+#else
 import Data.Conduit (Consumer, MonadBaseControl, MonadResource, MonadThrow)
+#endif
 import Data.Text (Text)
 import Data.XML.Types (Event)
 
diff --git a/AWS/RDS/DBSecurityGroup.hs b/AWS/RDS/DBSecurityGroup.hs
--- a/AWS/RDS/DBSecurityGroup.hs
+++ b/AWS/RDS/DBSecurityGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.DBSecurityGroup
     ( describeDBSecurityGroups
@@ -7,7 +7,12 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+import Data.Conduit (Consumer)
+#else
 import Data.Conduit (Consumer, MonadBaseControl, MonadResource, MonadThrow)
+#endif
 import Data.Text (Text)
 import Data.XML.Types (Event)
 
diff --git a/AWS/RDS/DBSnapshot.hs b/AWS/RDS/DBSnapshot.hs
--- a/AWS/RDS/DBSnapshot.hs
+++ b/AWS/RDS/DBSnapshot.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.RDS.DBSnapshot
     ( describeDBSnapshots
@@ -8,6 +8,9 @@
     ) where
 
 import Data.Text (Text)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Control.Applicative
 import Data.XML.Types (Event(..))
diff --git a/AWS/RDS/DBSubnetGroup.hs b/AWS/RDS/DBSubnetGroup.hs
--- a/AWS/RDS/DBSubnetGroup.hs
+++ b/AWS/RDS/DBSubnetGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.DBSubnetGroup
     ( describeDBSubnetGroups
@@ -7,7 +7,11 @@
     ) where
 
 import Control.Applicative ((<$>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadResource, MonadBaseControl)
+#else
 import Data.Conduit
+#endif
 import Data.Text (Text)
 
 import AWS.Lib.Parser (element)
diff --git a/AWS/RDS/Event.hs b/AWS/RDS/Event.hs
--- a/AWS/RDS/Event.hs
+++ b/AWS/RDS/Event.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.Event
     ( describeEvents
@@ -6,6 +6,9 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.Time (UTCTime)
diff --git a/AWS/RDS/EventSubscription.hs b/AWS/RDS/EventSubscription.hs
--- a/AWS/RDS/EventSubscription.hs
+++ b/AWS/RDS/EventSubscription.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.EventSubscription
     ( describeEventSubscriptions
@@ -9,6 +9,9 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.XML.Types (Event)
diff --git a/AWS/RDS/Internal.hs b/AWS/RDS/Internal.hs
--- a/AWS/RDS/Internal.hs
+++ b/AWS/RDS/Internal.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts, RankNTypes #-}
+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}
 
 module AWS.RDS.Internal
     ( apiVersion
@@ -17,6 +17,9 @@
 import qualified Control.Monad.Reader as Reader
 import qualified Control.Monad.State as State
 import Control.Monad.Trans.Class (lift)
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.ByteString (ByteString)
 import Data.Text (Text)
 import Data.Conduit
diff --git a/AWS/RDS/OptionGroup.hs b/AWS/RDS/OptionGroup.hs
--- a/AWS/RDS/OptionGroup.hs
+++ b/AWS/RDS/OptionGroup.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts, CPP #-}
 
 module AWS.RDS.OptionGroup
     ( describeOptionGroups
@@ -7,6 +7,9 @@
     ) where
 
 import Control.Applicative ((<$>), (<*>))
+#if MIN_VERSION_conduit(1,1,0)
+import Control.Monad.Trans.Resource (MonadThrow, MonadResource, MonadBaseControl)
+#endif
 import Data.Conduit
 import Data.Text (Text)
 import Data.XML.Types (Event)
diff --git a/aws-sdk.cabal b/aws-sdk.cabal
--- a/aws-sdk.cabal
+++ b/aws-sdk.cabal
@@ -1,5 +1,5 @@
 name:                aws-sdk
-version:             0.12.3
+version:             0.12.4
 synopsis:            AWS SDK for Haskell
 description: AWS (Amazon Web Services) sdk for Haskell.
              .
@@ -26,6 +26,9 @@
     description: enable debug logging
     default: False
 
+flag conduit-1-1
+    default:     True
+
 library
   exposed-modules:   AWS
                    , AWS.EC2
@@ -121,7 +124,6 @@
                    , base64-bytestring >= 1.0.0.0
                    , bytestring
                    , http-types
-                   , conduit >= 1.0.0
                    , transformers
                    , time
                    , old-locale
@@ -142,6 +144,12 @@
                    , parallel
                    , iproute >= 1.2.9
                    , tls
+  if flag(conduit-1-1)
+    build-depends:   conduit >= 1.1.0
+                   , conduit-extra >= 1.1.0
+                   , resourcet >= 1.1.0
+  else
+    build-depends:   conduit >= 1.0.0 && < 1.1.0
 
 test-suite test
     type:              exitcode-stdio-1.0
@@ -153,7 +161,6 @@
     extensions: OverloadedStrings
     build-depends: base
                  , aws-sdk
-                 , conduit
                  , text
                  , monad-control
                  , transformers
@@ -166,6 +173,11 @@
                  , tls
                  , time
                  , random
+  if flag(conduit-1-1)
+    build-depends:   conduit >= 1.1.0
+                   , resourcet >= 1.1.0
+  else
+    build-depends:   conduit >= 1.0.0 && < 1.1.0
 
 source-repository head
     type:            git
