diff --git a/libraries/http_request.inc b/libraries/http_request.inc
index 4a31825..b7b75c4 100644
--- a/libraries/http_request.inc
+++ b/libraries/http_request.inc
@@ -194,6 +194,16 @@ function http_request_get($url, $username = NULL, $password = NULL, $accept_inva
   }
   else {
     $result = drupal_http_request($url, array('headers' => $headers));
+
+    // drupal_http_request() makes all headers lowercase.
+    if (isset($result->headers['etag'])) {
+      $result->headers['ETag'] = $result->headers['etag'];
+      unset($result->headers['etag']);
+    }
+    if (isset($result->headers['last-modified'])) {
+      $result->headers['Last-Modified'] = $result->headers['last-modified'];
+      unset($result->headers['last-modified']);
+    }
   }
 
   $result->code = isset($result->code) ? $result->code : 200;
@@ -213,12 +223,6 @@ function http_request_get($url, $username = NULL, $password = NULL, $accept_inva
     }
   }
 
-  if (!isset($result->headers) || !isset($result->headers['ETag']) || !isset($result->headers['Last-Modified'])) {
-    $result->headers = isset($result->headers) ? $result->headers : array();
-    $result->headers['ETag'] = isset($result->headers['ETag']) ? $result->headers['ETag'] : '';
-    $result->headers['Last-Modified'] = isset($result->headers['Last-Modified']) ? $result->headers['Last-Modified'] : '';
-  }
-
   // Set caches.
   cache_set('feeds_http_download_' . md5($url), $result);
   $download_cache[$url] = $result;
