Patch from Jonathan Feinberg
diff --git a/httplib2/__init__.py b/httplib2/__init__.py
index 1dd2029..327013a 100644
--- a/httplib2/__init__.py
+++ b/httplib2/__init__.py
@@ -694,15 +694,15 @@
                         response.fromcache = True
                     return (response, content)
 
-                elif entry_disposition == "STALE":
+                if entry_disposition == "STALE":
                     if info.has_key('etag'):
                         headers['if-none-match'] = info['etag']
                     if info.has_key('last-modified'):
                         headers['if-modified-since'] = info['last-modified']
                 elif entry_disposition == "TRANSPARENT":
                     pass
-                if entry_disposition != "FRESH":
-                    (response, new_content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cacheFullPath)
+
+                (response, new_content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cacheFullPath)
 
             if response.status == 304 and method == "GET":
                 # Rewrite the cache entry with the new end-to-end headers