do not blindly catch all AttributeErrors
diff --git a/requests/models.py b/requests/models.py
index f32dd5f66f..f000633420 100644
--- a/requests/models.py
+++ b/requests/models.py
@@ -648,9 +648,10 @@ def iter_content(self, chunk_size=1, decode_unicode=False):
         If decode_unicode is True, content will be decoded using the best
         available encoding based on the response.
         """
+
         def generate():
-            try:
-                # Special case for urllib3.
+            # Special case for urllib3.
+            if hasattr(self.raw, 'stream'):
                 try:
                     for chunk in self.raw.stream(chunk_size, decode_content=True):
                         yield chunk
@@ -660,7 +661,7 @@ def generate():
                     raise ContentDecodingError(e)
                 except ReadTimeoutError as e:
                     raise ConnectionError(e)
-            except AttributeError:
+            else:
                 # Standard file-like object.
                 while True:
                     chunk = self.raw.read(chunk_size)

see shazow/urllib3#618
