diff --git a/django/contrib/staticfiles/views.py b/django/contrib/staticfiles/views.py
index 147dec93f0..694591c996 100644
--- a/django/contrib/staticfiles/views.py
+++ b/django/contrib/staticfiles/views.py
@@ -150,7 +150,10 @@ def was_modified_since(header=None, mtime=0, size=0):
             raise ValueError
         matches = re.match(r"^([^;]+)(; length=([0-9]+))?$", header,
                            re.IGNORECASE)
-        header_mtime = mktime_tz(parsedate_tz(matches.group(1)))
+        header_date = parsedate_tz(matches.group(1))
+        if header_date is None:
+            raise ValueError
+        header_mtime = mktime_tz(header_date)
         header_len = matches.group(3)
         if header_len and int(header_len) != size:
             raise ValueError
diff --git a/tests/regressiontests/views/tests/static.py b/tests/regressiontests/views/tests/static.py
index d1aa029bc5..cd29687967 100644
--- a/tests/regressiontests/views/tests/static.py
+++ b/tests/regressiontests/views/tests/static.py
@@ -69,3 +69,17 @@ class StaticTests(TestCase):
         self.assertEquals(len(response.content),
                           int(response['Content-Length']))
 
+    def test_invalid_if_modified_since2(self):
+        """Handle even more bogus If-Modified-Since values gracefully
+
+        Assume that a file is modified since an invalid timestamp as per RFC
+        2616, section 14.25.
+        """
+        file_name = 'file.txt'
+        invalid_date = ': 1291108438, Wed, 20 Oct 2010 14:05:00 GMT'
+        response = self.client.get('/views/site_media/%s' % file_name,
+                                   HTTP_IF_MODIFIED_SINCE=invalid_date)
+        file = open(path.join(media_dir, file_name))
+        self.assertEquals(file.read(), response.content)
+        self.assertEquals(len(response.content),
+                          int(response['Content-Length']))