diff --git libcloud/common/base.py libcloud/common/base.py
index c8eca27..f6b1973 100644
--- libcloud/common/base.py
+++ libcloud/common/base.py
@@ -181,6 +181,10 @@ class XmlResponse(Response):
         if len(self.body) == 0 and not self.parse_zero_length_body:
             return self.body
 
+        if not PY3:
+            self.body = self.body.decode('utf-8')\
+                .encode('ascii', 'xmlcharrefreplace')
+
         try:
             body = ET.XML(self.body)
         except:
