diff --git a/slumber/__init__.py b/slumber/__init__.py
index <HASH>..<HASH> 100644
--- a/slumber/__init__.py
+++ b/slumber/__init__.py
@@ -109,10 +109,12 @@ class Resource(ResourceAttributesMixin, object):
 
         resp = self._request("GET", params=kwargs)
         if 200 <= resp.status_code <= 299:
-            if resp.status_code == 200:
-                return s.loads(resp.content)
-            else:
+            try:
+                stype = s.get_serializer(content_type=resp.headers.get("content-type"))
+            except exceptions.SerializerNotAvailable:
                 return resp.content
+
+            return stype.loads(resp.content)
         else:
             return  # @@@ We should probably do some sort of error here? (Is this even possible?)
Don't assume on the format of the serialized, use content_type