diff --git a/test/cgi/chunked_bzip2.py b/test/cgi/chunked_bzip2.py
new file mode 100755
index 00000000..c34dc132
--- /dev/null
+++ b/test/cgi/chunked_bzip2.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+import bz2, os
+
+data1 = '
Two lines should be visible.
'
+data2 = 'The second line.'
+
+f1 = bz2.BZ2File("/tmp/1.bz2", mode = "wb")
+f1.write(data1)
+f1.close()
+f2 = bz2.BZ2File("/tmp/2.bz2", mode = "wb")
+f2.write(data2)
+f2.close()
+
+f = open("/tmp/1.bz2")
+cd1 = f.read()
+f.close()
+f3 = open("/tmp/2.bz2")
+cd2 = f3.read()
+f3.close()
+
+os.unlink("/tmp/1.bz2")
+os.unlink("/tmp/2.bz2")
+
+calosc = cd1 + cd2
+length = len(calosc)
+how_many = 40
+
+len1 = hex(how_many)[2:]
+len2 = hex(length - how_many)[2:]
+
+os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: bzip2\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n")
+os.write(1, "%s\r\n" % len1)
+os.write(1, calosc[:how_many])
+os.write(1, "\r\n%s\r\n" % len2)
+os.write(1, calosc[how_many:])
+os.write(1, "\r\n0\r\n\r\n")
diff --git a/test/cgi/chunked_deflate.py b/test/cgi/chunked_deflate.py
new file mode 100755
index 00000000..59d7ee0b
--- /dev/null
+++ b/test/cgi/chunked_deflate.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+import os, zlib
+
+data1 = 'Two lines should be visible.
'
+data2 = 'The second line.'
+
+cd1 = zlib.compress(data1)
+cd2 = zlib.compress(data2)
+
+calosc = cd1 + cd2
+length = len(calosc)
+
+how_many = 40
+len1 = hex(how_many)[2:]
+len2 = hex(length - how_many)[2:]
+
+os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: deflate\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n")
+os.write(1, "%s\r\n" % len1)
+os.write(1, calosc[:how_many])
+os.write(1, "\r\n%s\r\n" % len2)
+os.write(1, calosc[how_many:])
+os.write(1, "\r\n0\r\n\r\n")
diff --git a/test/cgi/chunked_gzip.py b/test/cgi/chunked_gzip.py
new file mode 100755
index 00000000..411fa99f
--- /dev/null
+++ b/test/cgi/chunked_gzip.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+import gzip, os
+
+data1 = 'Two lines should be visible.
'
+data2 = 'The second line.'
+
+f1 = gzip.GzipFile("/tmp/1.gz", mode = "wb")
+f1.write(data1)
+f1.close()
+f2 = gzip.GzipFile("/tmp/2.gz", mode = "wb")
+f2.write(data2)
+f2.close()
+
+f = open("/tmp/1.gz")
+cd1 = f.read()
+f.close()
+f3 = open("/tmp/2.gz")
+cd2 = f3.read()
+f3.close()
+
+os.unlink("/tmp/1.gz")
+os.unlink("/tmp/2.gz")
+
+calosc = cd1 + cd2
+length = len(calosc)
+how_many = 40
+
+len1 = hex(how_many)[2:]
+len2 = hex(length - how_many)[2:]
+
+os.write(1, "HTTP/1.0 200 OK\r\nDate: Sun, 20 Jan 2008 15:24:00 GMT\r\nServer: ddd\r\nTransfer-Encoding: chunked\r\nContent-Encoding: gzip\r\nConnection: close\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n")
+os.write(1, "%s\r\n" % len1)
+os.write(1, calosc[:how_many])
+os.write(1, "\r\n%s\r\n" % len2)
+os.write(1, calosc[how_many:])
+os.write(1, "\r\n0\r\n\r\n")