Crude but effective hack to clear the parser cache every so often.
(Fred Drake.)
diff --git a/Lib/urlparse.py b/Lib/urlparse.py
index 571ef0e..9177533 100644
--- a/Lib/urlparse.py
+++ b/Lib/urlparse.py
@@ -19,9 +19,11 @@
 # Characters valid in scheme names
 scheme_chars = string.letters + string.digits + '+-.'
 
+MAX_CACHE_SIZE = 2000
 _parse_cache = {}
 
 def clear_cache():
+    """Clear the parse cache."""
     global _parse_cache
     _parse_cache = {}
 
@@ -35,6 +37,8 @@
 	key = url, scheme, allow_framents
 	if _parse_cache.has_key(key):
 	    return _parse_cache[key]
+	if len(_parse_cache) >= MAX_CACHE_SIZE:	# avoid runaway growth
+	    clear_cache()
 	netloc = path = params = query = fragment = ''
 	i = string.find(url, ':')
 	if i > 0: