Index: Lib/test/test_urlparse.py =================================================================== --- Lib/test/test_urlparse.py (revision 80952) +++ Lib/test/test_urlparse.py (working copy) @@ -103,7 +103,12 @@ ('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/', '', '', ''), ('svn+ssh', 'svn.zope.org', '/repos/main/ZConfig/trunk/', - '', '')) + '', '')), + ('git+ssh://git@github.com/user/project.git', + ('git+ssh', 'git@github.com','/user/project.git', + '','',''), + ('git+ssh', 'git@github.com','/user/project.git', + '', '')) ] for url, parsed, split in testcases: self.checkRoundtrips(url, parsed, split) Index: Lib/urlparse.py =================================================================== --- Lib/urlparse.py (revision 80952) +++ Lib/urlparse.py (working copy) @@ -38,7 +38,8 @@ uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet', 'imap', 'wais', 'file', 'mms', 'https', 'shttp', 'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '', - 'svn', 'svn+ssh', 'sftp','nfs'] + 'svn', 'svn+ssh', 'sftp','nfs','git', 'git+file', + 'git+ssh'] non_hierarchical = ['gopher', 'hdl', 'mailto', 'news', 'telnet', 'wais', 'imap', 'snews', 'sip', 'sips'] uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap',