At Jim Fulton's request (actually, as a compromise :-), default the
content-type to application/x-www-form-urlencoded only when the method
is POST.  Ditto for when the content-type is unrecognized -- only
fall back to urlencoded with POST.
diff --git a/Lib/cgi.py b/Lib/cgi.py
index ab6dda8..6b8d5e5 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -841,7 +841,7 @@
         # but it happens to be something we don't understand.
         if self.headers.has_key('content-type'):
             ctype, pdict = parse_header(self.headers['content-type'])
-        elif self.outerboundary:
+        elif self.outerboundary or method != 'POST':
             ctype, pdict = "text/plain", {}
         else:
             ctype, pdict = 'application/x-www-form-urlencoded', {}
@@ -867,7 +867,7 @@
             self.read_urlencoded()
         elif ctype[:10] == 'multipart/':
             self.read_multi(environ, keep_blank_values, strict_parsing)
-        elif self.outerboundary:
+        elif self.outerboundary or method != 'POST':
             # we're in an inner part, but the content-type wasn't something we 
             # understood.  default to read_single() because the resulting
             # FieldStorage won't be a mapping (and doesn't need to be).