Index: django/core/servers/basehttp.py
===================================================================
--- django/core/servers/basehttp.py	(revision 6442)
+++ django/core/servers/basehttp.py	(working copy)
@@ -399,6 +399,18 @@
             self.bytes_sent += len(data)
 
         # XXX check Content-Length and truncate if too many bytes written?
+
+        # if data is too large, socket will choke, so transfer smaller chunks
+        length = len(data)
+        if length > 33554432:
+            offset = 0
+            while length > 0:
+                chunk_size = min(33554432, length)
+                self._write(data[offset:offset+chunk_size])
+                self._flush()
+                offset += chunk_size
+                length -= chunk_size
+            return
         self._write(data)
         self._flush()
 
Index: django/views/static.py
===================================================================
--- django/views/static.py	(revision 6442)
+++ django/views/static.py	(working copy)
@@ -51,10 +51,11 @@
     if not was_modified_since(request.META.get('HTTP_IF_MODIFIED_SINCE'),
                               statobj[stat.ST_MTIME], statobj[stat.ST_SIZE]):
         return HttpResponseNotModified()
-    mimetype = mimetypes.guess_type(fullpath)[0]
+    mimetype = mimetypes.guess_type(fullpath)[0] or 'application/octet-stream'
     contents = open(fullpath, 'rb').read()
     response = HttpResponse(contents, mimetype=mimetype)
     response["Last-Modified"] = rfc822.formatdate(statobj[stat.ST_MTIME])
+    response["Content-Length"] = len(contents)
     return response
 
 DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
Index: tests/regressiontests/views/media/file.unknown
===================================================================
--- tests/regressiontests/views/media/file.unknown	(revision 0)
+++ tests/regressiontests/views/media/file.unknown	(revision 0)
@@ -0,0 +1 @@
+An unknown file extension.
Index: tests/regressiontests/views/tests/static.py
===================================================================
--- tests/regressiontests/views/tests/static.py	(revision 6442)
+++ tests/regressiontests/views/tests/static.py	(working copy)
@@ -12,4 +12,9 @@
         for filename in media_files:
             response = self.client.get('/views/site_media/%s' % filename)
             file = open(path.join(media_dir, filename))
-            self.assertEquals(file.read(), response.content)
\ No newline at end of file
+            self.assertEquals(file.read(), response.content)
+            self.assertEquals(len(response.content), response['Content-Length'])
+
+    def test_unknown_mime_type(self):
+        response = self.client.get('/views/site_media/file.unknown')
+        self.assertEquals('application/octet-stream', response['Content-Type'])
