diff --git a/amazonka-core.cabal b/amazonka-core.cabal
--- a/amazonka-core.cabal
+++ b/amazonka-core.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-core
-version:               1.3.5.1
+version:               1.3.6
 synopsis:              Core data types and functionality for Amazonka libraries.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
diff --git a/src/Network/AWS/Data/Body.hs b/src/Network/AWS/Data/Body.hs
--- a/src/Network/AWS/Data/Body.hs
+++ b/src/Network/AWS/Data/Body.hs
@@ -51,8 +51,7 @@
 -- | A streaming, exception safe response body.
 newtype RsBody = RsBody
     { _streamBody :: ResumableSource (ResourceT IO) ByteString
-    }
--- newtype for show/orhpan instance purposes.
+    } -- newtype for show/orhpan instance purposes.
 
 instance Show RsBody where
     show = const "RsBody { ResumableSource (ResourceT IO) ByteString }"
diff --git a/src/Network/AWS/Data/XML.hs b/src/Network/AWS/Data/XML.hs
--- a/src/Network/AWS/Data/XML.hs
+++ b/src/Network/AWS/Data/XML.hs
@@ -119,6 +119,14 @@
 instance ToElement Element where
     toElement = id
 
+-- | Convert to an 'Element', only if the resulting element contains @> 0@ nodes.
+maybeElement :: ToElement a => a -> Maybe Element
+maybeElement x =
+    case toElement x of
+        e@(Element _ _ ns)
+            | null ns   -> Nothing
+            | otherwise -> Just e
+
 -- | Provides a way to make the operators for ToXML instance
 -- declaration be consistent WRT to single nodes or lists of nodes.
 data XML
diff --git a/src/Network/AWS/Prelude.hs b/src/Network/AWS/Prelude.hs
--- a/src/Network/AWS/Prelude.hs
+++ b/src/Network/AWS/Prelude.hs
@@ -19,7 +19,7 @@
                                                         iso, lens, mapping,
                                                         prism, to, _Just, _last)
 import           Control.Lens                as Export (( # ), (&), (.~), (<&>),
-                                                        (^.), (^?))
+                                                        (^.), (^?), (^?))
 import           Data.Data                   as Export (Data, Typeable)
 import           Data.Foldable               as Export (Foldable)
 import           Data.Hashable               as Export (Hashable)
diff --git a/src/Network/AWS/Request.hs b/src/Network/AWS/Request.hs
--- a/src/Network/AWS/Request.hs
+++ b/src/Network/AWS/Request.hs
@@ -102,7 +102,7 @@
 putXML :: (ToRequest a, ToElement a) => Service -> a -> Request a
 putXML s x = defaultRequest s x
     & rqMethod .~ PUT
-    & rqBody   .~ toBody (toElement x)
+    & rqBody   .~ maybe "" toBody (maybeElement x)
 
 putJSON :: (ToRequest a, ToJSON a) => Service -> a -> Request a
 putJSON s x = defaultRequest s x
