diff --git a/AWS/ELB.hs b/AWS/ELB.hs
--- a/AWS/ELB.hs
+++ b/AWS/ELB.hs
@@ -5,6 +5,7 @@
       ELB
     , runELB
     , setRegion
+    , apiVersion
       -- * LoadBalancer
     , module AWS.ELB.LoadBalancer
     ) where
diff --git a/AWS/ELB/LoadBalancer.hs b/AWS/ELB/LoadBalancer.hs
--- a/AWS/ELB/LoadBalancer.hs
+++ b/AWS/ELB/LoadBalancer.hs
@@ -2,9 +2,12 @@
 
 module AWS.ELB.LoadBalancer
     ( describeLoadBalancers
+    , createLoadBalancer
+    , deleteLoadBalancer
     ) where
 
 import Data.Text (Text)
+import Data.IP (IPv4, AddrRange)
 import Data.Conduit
 import Control.Applicative
 import Data.XML.Types (Event(..))
@@ -15,11 +18,13 @@
 import AWS.ELB.Types
 import AWS.ELB.Internal
 
+import AWS.Util (toText)
+
 describeLoadBalancers
     :: (MonadBaseControl IO m, MonadResource m)
     => [Text] -- ^ LoadBalancerNames
     -> Maybe Text -- ^ Marker
-    -> ELB m [LoadBalancerDescription]
+    -> ELB m [LoadBalancer]
 describeLoadBalancers lbs marker =
     elbQuery "DescribeLoadBalancers" params sinkLoadBalancers
   where
@@ -29,12 +34,12 @@
         ]
 
 sinkLoadBalancers :: MonadThrow m
-    => GLSink Event m [LoadBalancerDescription]
+    => GLSink Event m [LoadBalancer]
 sinkLoadBalancers = members "LoadBalancerDescriptions" $
-    LoadBalancerDescription
+    LoadBalancer
     <$> members "SecurityGroups" text
-    <*> getT "LoadBalancerName"
     <*> getT "CreatedTime"
+    <*> getT "LoadBalancerName"
     <*> element "HealthCheck"
         (HealthCheck
         <$> getT "Interval"
@@ -88,3 +93,41 @@
         <*> members "PolicyNames" text
         )
     <*> members "Subnets" text
+
+createLoadBalancer
+    :: (MonadBaseControl IO m, MonadResource m)
+    => Text -- ^ LoadBalancerName
+    -> [Listener] -- ^ Listeners
+    -> [Text] -- ^ AvailabilityZones
+    -> Maybe Text -- ^ Scheme
+    -> [Text] -- ^ SecurityGroups
+    -> [AddrRange IPv4] -- ^ Subnets
+    -> ELB m Text -- return DNSName
+createLoadBalancer name listeners zones scheme groups subnets =
+    elbQuery "CreateLoadBalancer" params $ getT "DNSName"
+  where
+    params =
+        [ "LoadBalancerName" |= name
+        , "Listeners.member" |.#. listeners'
+        , "AvailabilityZones.member" |.#= zones
+        , "Scheme" |=? scheme
+        , "SecurityGroups.member" |.#= groups
+        , "Subnets.member" |.#= map toText subnets
+        ]
+    listeners' = flip map listeners $
+        \(Listener prot lbport iprot cert iport) ->
+            [ "Protocol" |= prot
+            , "LoadBalancerPort" |= toText lbport
+            , "InstanceProtocol" |= iprot
+            , "SSLCertificateId" |=? cert
+            , "InstancePort" |= toText iport
+            ]
+
+deleteLoadBalancer
+    :: (MonadBaseControl IO m, MonadResource m)
+    => Text -- ^ LoadBalancerName
+    -> ELB m ()
+deleteLoadBalancer name = elbQuery "DeleteLoadBalancer" params $
+    getT_ "DeleteLoadBalancerResult"
+  where
+    params = ["LoadBalancerName" |= name]
diff --git a/AWS/ELB/Types.hs b/AWS/ELB/Types.hs
--- a/AWS/ELB/Types.hs
+++ b/AWS/ELB/Types.hs
@@ -4,82 +4,83 @@
 import Data.Text (Text)
 import Data.Time (UTCTime)
 
-data LoadBalancerDescription = LoadBalancerDescription
-    { lbSecurityGroups :: [Text]
-    , lbLoadBalancerName :: Text
-    , lbCreatedTime :: UTCTime
-    , lbHealthCheck :: HealthCheck
-    , lbVPCId :: Maybe Text
-    , lbListenerDescriptions :: [ListenerDescription]
-    , lbInstances :: [Instance]
-    , lbPolicies :: Policies
-    , lbAvailabilityZones :: [Text]
-    , lbCanonicalHostedZoneName :: Text
-    , lbCanonicalHostedZoneNameID :: Text
-    , lbScheme :: Text
-    , lbSourceSecurityGroup :: Maybe SourceSecurityGroup
-    , lbDNSName :: Text
-    , lbBackendServerDescriptions :: [BackendServerDescription]
-    , lbSubnets :: [Text]
+data LoadBalancer = LoadBalancer
+    { loadBalancerSecurityGroups :: [Text]
+    , loadBalancerCreatedTime :: UTCTime
+    , loadBalancerLoadBalancerName :: Text
+    , loadBalancerHealthCheck :: HealthCheck
+    , loadBalancerVPCId :: Maybe Text
+    , loadBalancerListenerDescriptions :: [ListenerDescription]
+    , loadBalancerInstances :: [Instance]
+    , loadBalancerPolicies :: Policies
+    , loadBalancerAvailabilityZones :: [Text]
+    , loadBalancerCanonicalHostedZoneName :: Maybe Text
+    , loadBalancerCanonicalHostedZoneNameID :: Maybe Text
+    , loadBalancerScheme :: Text
+    , loadBalancerSourceSecurityGroup :: Maybe SourceSecurityGroup
+    , loadBalancerDNSName :: Text
+    , loadBalancerBackendServerDescriptions
+        :: [BackendServerDescription]
+    , loadBalancerSubnets :: [Text]
     }
   deriving (Show, Eq)
 
 data BackendServerDescription = BackendServerDescription
-    { bsInstancePort :: Int
-    , bsPolicyNames :: [Text]
+    { backendServerInstancePort :: Int
+    , backendServerPolicyNames :: [Text]
     }
   deriving (Show, Eq)
 
 data HealthCheck = HealthCheck
-    { hcInterval :: Int
-    , hcTarget :: Text
-    , hcHealthyThreshold :: Int
-    , hcTimeout :: Int
-    , hcUnhealthyThreshold :: Int
+    { healthCheckInterval :: Int
+    , healthCheckTarget :: Text
+    , healthCheckHealthyThreshold :: Int
+    , healthCheckTimeout :: Int
+    , healthCheckUnhealthyThreshold :: Int
     }
   deriving (Show, Eq)
 
 data Instance = Instance
-    { iInstanceId :: Text
+    { instanceId :: Text
     }
   deriving (Show, Eq)
 
 data ListenerDescription = ListenerDescription
-    { ldPolicyNames :: [Text]
-    , ldListener :: Listener
+    { listenerDescriptionPolicyNames :: [Text]
+    , listenerDescriptionListener :: Listener
     }
   deriving (Show, Eq)
 
 data Listener = Listener
-    { lProtocol :: Text
-    , lLoadBalancerPort :: Int
-    , lInstanceProtocol :: Text
-    , lSSLCertificateId :: Maybe Text
-    , lInstancePort :: Int
+    { listenerProtocol :: Text
+    , listenerLoadBalancerPort :: Int
+    , listenerInstanceProtocol :: Text
+    , listenerSSLCertificateId :: Maybe Text
+    , listenerInstancePort :: Int
     }
   deriving (Show, Eq)
 
 data Policies = Policies
-    { pAppCookieStickinessPolicies :: [AppCookieStickinessPolicy]
-    , pOtherPolicies :: [Text]
-    , pLBCookieStickinessPolicies :: [LBCookieStickinessPolicy]
+    { policiesAppCookieStickinessPolicies :: [AppCookieStickinessPolicy]
+    , policiesOtherPolicies :: [Text]
+    , policiesLBCookieStickinessPolicies :: [LBCookieStickinessPolicy]
     }
   deriving (Show, Eq)
 
 data AppCookieStickinessPolicy = AppCookieStickinessPolicy
-    { acspCookieName :: Text
-    , acspPolicyName :: Text
+    { appCookieStickinessPolicyCookieName :: Text
+    , appCookieStickinessPolicyPolicyName :: Text
     }
   deriving (Show, Eq)
 
 data LBCookieStickinessPolicy = LBCookieStickinessPolicy
-    { lbcspCookieExpirationPeriod :: Integer
-    , lbcspPolicyName :: Text
+    { lbCookieStickinessPolicyCookieExpirationPeriod :: Integer
+    , lbCookieStickinessPolicyPolicyName :: Text
     }
   deriving (Show, Eq)
 
 data SourceSecurityGroup = SourceSecurityGroup
-    { ssgOwnerAlias :: Text
-    , ssgGroupName :: Text
+    { sourceSecurityGroupOwnerAlias :: Text
+    , sourceSecurityGroupGroupName :: Text
     }
   deriving (Show, Eq)
diff --git a/AWS/Lib/Parser.hs b/AWS/Lib/Parser.hs
--- a/AWS/Lib/Parser.hs
+++ b/AWS/Lib/Parser.hs
@@ -93,7 +93,7 @@
 getT_ :: forall m o u . MonadThrow m
     => Text
     -> Pipe Event Event o u m ()
-getT_ name = () <$ (getT name :: Pipe Event Event o u m Text)
+getT_ name = () <$ (getT name :: Pipe Event Event o u m (Maybe Text))
 
 elementM :: forall o u m a . MonadThrow m
     => Text
diff --git a/Tests/Main.hs b/Tests/Main.hs
--- a/Tests/Main.hs
+++ b/Tests/Main.hs
@@ -6,6 +6,7 @@
 
 import AWSTests.EC2Tests
 import AWSTests.RDSTests
+import AWSTests.ELBTests
 
 main :: IO ()
 main = do
@@ -32,3 +33,6 @@
     -- RDS Tests
     runDBInstanceTests
     runDBSnapshotTests
+
+    -- ELB Tests
+    runLoadBalancerTests
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.9.1.0
+version:             0.9.2.1
 synopsis:            AWS SDK for Haskell
 description: AWS (Amazon Web Services) sdk for Haskell.
              .
@@ -79,7 +79,7 @@
                    , old-locale
                    , http-conduit
                    , data-default
-                   , xml-conduit
+                   , xml-conduit >= 1.0.3.3
                    , xml-types
                    , text
                    , monad-control
