diff --git a/Aws/Route53/Commands/ChangeResourceRecordSets.hs b/Aws/Route53/Commands/ChangeResourceRecordSets.hs
--- a/Aws/Route53/Commands/ChangeResourceRecordSets.hs
+++ b/Aws/Route53/Commands/ChangeResourceRecordSets.hs
@@ -20,7 +20,7 @@
 import qualified Text.XML                   as XML
 import qualified Data.ByteString            as B
 
-data ACTION = CREATE | DELETE 
+data ACTION = CREATE | DELETE | UPSERT
             deriving (Show)
 
 -- TODO enforce constrains either via type or dynamically on creation or usage
diff --git a/Aws/Route53/Commands/GetDate.hs b/Aws/Route53/Commands/GetDate.hs
--- a/Aws/Route53/Commands/GetDate.hs
+++ b/Aws/Route53/Commands/GetDate.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 -- ------------------------------------------------------ --
 -- Copyright © 2012 AlephCloud Systems, Inc.
 -- ------------------------------------------------------ --
@@ -14,13 +16,21 @@
 import           Aws.Core
 import           Aws.Route53.Core
 import           Data.Maybe
+#if __GLASGOW_HASKELL__ < 710
+import           Data.Monoid
+#endif
 import           Data.Time                  (UTCTime)
+#if MIN_VERSION_time(1,5,0)
+import           Data.Time.Format           (parseTimeM, defaultTimeLocale)
+#else
 import           Data.Time.Format           (parseTime)
 import           System.Locale              (defaultTimeLocale)
+#endif
 import           Data.ByteString.Char8      (unpack)
 import qualified Network.HTTP.Conduit       as HTTP
 import qualified Network.HTTP.Types         as HTTP
 
+
 data GetDate = GetDate deriving (Show)
 
 newtype GetDateResponse = GetDateResponse { date :: UTCTime } deriving (Show)
@@ -45,20 +55,27 @@
     , sqStringToSign = ""
     }
 
+newtype Empty = Empty () deriving (Monoid)
+
+instance Loggable Empty where
+  toLogText _ = ""
+
 instance ResponseConsumer r GetDateResponse where
-  type ResponseMetadata GetDateResponse = ()
+  type ResponseMetadata GetDateResponse = Empty
   responseConsumer _ _ resp = return $ GetDateResponse date
     where
     -- TODO add proper error handling
     date = fromJust $ do
       str <- findHeaderValue (HTTP.responseHeaders resp) HTTP.hDate
       -- FIXME: this is probably to restrictive. We should support full rfc1123
+#if MIN_VERSION_time(1,5,0)
+      parseTimeM True defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z" (unpack str)
+#else
       parseTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z" (unpack str)
+#endif
 
 getDate :: GetDate
 getDate = GetDate
 
 instance Transaction GetDate GetDateResponse
 
-instance Loggable () where
-  toLogText _ = ""
diff --git a/Aws/Route53/Commands/ListHostedZones.hs b/Aws/Route53/Commands/ListHostedZones.hs
--- a/Aws/Route53/Commands/ListHostedZones.hs
+++ b/Aws/Route53/Commands/ListHostedZones.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE TupleSections #-}
 -- ------------------------------------------------------ --
 -- Copyright © 2012 AlephCloud Systems, Inc.
@@ -14,7 +15,9 @@
 import           Aws.Core
 import           Aws.Route53.Core
 import           Data.Maybe
+#if __GLASGOW_HASKELL__ < 710
 import           Control.Applicative        ((<$>), (<$))
+#endif
 import           Text.XML.Cursor            (($//))
 import qualified Data.Text                  as T
 import qualified Data.Text.Encoding         as T
diff --git a/Aws/Route53/Commands/ListResourceRecordSets.hs b/Aws/Route53/Commands/ListResourceRecordSets.hs
--- a/Aws/Route53/Commands/ListResourceRecordSets.hs
+++ b/Aws/Route53/Commands/ListResourceRecordSets.hs
@@ -38,6 +38,14 @@
 listResourceRecordSets :: HostedZoneId -> ListResourceRecordSets
 listResourceRecordSets hostedZoneId = ListResourceRecordSets hostedZoneId Nothing Nothing Nothing Nothing
 
+-- | Construct the next request for resources if the last request was
+-- truncated. Otherwise, return @Nothing@.
+nextResourceRecordSet :: HostedZoneId -> ListResourceRecordSetsResponse -> Maybe ListResourceRecordSets
+{-# INLINE nextResourceRecordSet #-}
+nextResourceRecordSet hostedZoneId lrrsr
+    | not (lrrsrIsTruncated lrrsr) = Nothing
+    | otherwise                    = Just $ ListResourceRecordSets hostedZoneId (lrrsrNextRecordName lrrsr) Nothing Nothing Nothing
+
 data ListResourceRecordSetsResponse = ListResourceRecordSetsResponse
                              { lrrsrResourceRecordSets :: ResourceRecordSets
                              , lrrsrIsTruncated :: Bool
@@ -86,12 +94,4 @@
                                         lrrsrNextRecordType 
                                         lrrsrNextRecordIdentifier 
                                         lrrsrMaxItems
-{-    combineIteratedResponse a b = ListResourceRecordSetsResponse
-           { lrrsrResourceRecordSets = lrrsrResourceRecordSets a ++ lrrsrResourceRecordSets b
-           , lrrsrIsTruncated = lrrsrIsTruncated b
-           , lrrsrNextRecordName = lrrsrNextRecordName b
-           , lrrsrNextRecordType = lrrsrNextRecordType b
-           , lrrsrNextRecordIdentifier = lrrsrNextRecordIdentifier b
-           , lrrsrMaxItems = lrrsrMaxItems b
-           }-}
 
diff --git a/Aws/Route53/Core.hs b/Aws/Route53/Core.hs
--- a/Aws/Route53/Core.hs
+++ b/Aws/Route53/Core.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE QuasiQuotes, FlexibleContexts, TypeSynonymInstances #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving, DeriveDataTypeable #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -69,7 +70,9 @@
 
 import           Aws.Core
 import           Data.IORef
+#if __GLASGOW_HASKELL__ < 710
 import           Data.Monoid
+#endif
 import           Data.String
 import           Data.Typeable
 import           Control.Monad             (MonadPlus, mzero, mplus, liftM)
@@ -80,8 +83,12 @@
 import           Data.Text                 (Text, unpack)
 import           Data.Text.Encoding        (decodeUtf8)
 import           Data.Time                 (UTCTime)
+#if MIN_VERSION_time(1,5,0)
+import           Data.Time.Format          (parseTimeM, defaultTimeLocale)
+#else
 import           Data.Time.Format          (parseTime)
 import           System.Locale             (defaultTimeLocale)
+#endif
 import           Text.Hamlet.XML           (xml)
 import           Text.XML                  (elementAttributes)
 import           Text.XML.Cursor           (($/), ($//), (&|), ($.//), laxElement)
@@ -521,7 +528,11 @@
     submittedAt <- force "Missing SubmittedAt element" $ c $/ elCont "SubmittedAt" &| utcTime
     return $ ChangeInfo ciId status submittedAt
     where
+#if MIN_VERSION_time(1,5,0)
+    utcTime str = fromJust $ parseTimeM True defaultTimeLocale "%Y-%m-%dT%H:%M:%S%Q%Z" str
+#else
     utcTime str = fromJust $ parseTime defaultTimeLocale "%Y-%m-%dT%H:%M:%S%Q%Z" str
+#endif
 
 -- -------------------------------------------------------------------------- --
 -- Parser and Serialization Utilities
diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.2 - 27th April, 2015
+
+* Fix compilation with GHC 7.10.
+
 # 0.1.1 - 4th August, 2014
 
 * Fix Alias target requests.
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -1,4 +1,7 @@
-Aristid Breitkreuz
-Vladimir Kirillov
-Amit Levy
-David Terei
+# AWS Route53 Contributors
+
+* Aristid Breitkreuz
+* Vladimir Kirillov
+* Amit Levy
+* David Terei
+
diff --git a/aws-route53.cabal b/aws-route53.cabal
--- a/aws-route53.cabal
+++ b/aws-route53.cabal
@@ -1,5 +1,5 @@
 name:                aws-route53
-version:             0.1.1
+version:             0.1.2
 synopsis:            Amazon Route53 DNS service plugin for the aws package.
 description:         Amazon Route53 DNS service plugin for the aws package.
 license:             BSD3
@@ -49,11 +49,13 @@
     MultiParamTypeClasses,
     FlexibleInstances,
     OverloadedStrings
+  Other-Extensions:
+    CPP
 
 Source-repository this
   type: git
   location: https://github.com/memcachier/aws-route53.git
-  tag: 0.1.0
+  tag: 0.1.2
 
 Source-repository head
   type: git
