diff --git a/Lib/cgi.py b/Lib/cgi.py
index 487b01e..7c3d657 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -209,6 +209,8 @@
     pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
     r = []
     for name_value in pairs:
+        if not name_value and not strict_parsing:
+            continue
         nv = name_value.split('=', 1)
         if len(nv) != 2:
             if strict_parsing:
diff --git a/Lib/test/output/test_cgi b/Lib/test/output/test_cgi
index 3741c22..d5d6f75 100644
--- a/Lib/test/output/test_cgi
+++ b/Lib/test/output/test_cgi
@@ -1,4 +1,15 @@
 test_cgi
+'' => []
+'&' => []
+'&&' => []
+'=' => [('', '')]
+'=a' => [('', 'a')]
+'a' => [('a', '')]
+'a=' => [('a', '')]
+'a=' => [('a', '')]
+'&a=b' => [('a', 'b')]
+'a=a+b&b=b+c' => [('a', 'a b'), ('b', 'b c')]
+'a=1&a=2' => [('a', '1'), ('a', '2')]
 ''
 '&'
 '&&'
diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py
index 980e3b6..5ecaf7f 100644
--- a/Lib/test/test_cgi.py
+++ b/Lib/test/test_cgi.py
@@ -55,7 +55,21 @@
 # A list of test cases.  Each test case is a a two-tuple that contains
 # a string with the query and a dictionary with the expected result.
 
-parse_test_cases = [
+parse_qsl_test_cases = [
+    ("", []),
+    ("&", []),
+    ("&&", []),
+    ("=", [('', '')]),
+    ("=a", [('', 'a')]),
+    ("a", [('a', '')]),
+    ("a=", [('a', '')]),
+    ("a=", [('a', '')]),
+    ("&a=b", [('a', 'b')]),
+    ("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]),
+    ("a=1&a=2", [('a', '1'), ('a', '2')]),
+]
+
+parse_strict_test_cases = [
     ("", ValueError("bad query field: ''")),
     ("&", ValueError("bad query field: ''")),
     ("&&", ValueError("bad query field: ''")),
@@ -114,7 +128,12 @@
     return map(lambda p:(p[0], p[1][0]), list)
 
 def main():
-    for orig, expect in parse_test_cases:
+    for orig, expect in parse_qsl_test_cases:
+        result = cgi.parse_qsl(orig, keep_blank_values=True)
+        print repr(orig), '=>', result
+        verify(result == expect, "Error parsing %s" % repr(orig))
+
+    for orig, expect in parse_strict_test_cases:
         # Test basic parsing
         print repr(orig)
         d = do_test(orig, "GET")
