diff -r a01c52b08c5f -r 00411a4fa1bb mercurial/url.py --- a/mercurial/url.py Sat Jan 08 11:18:38 2011 +0100 +++ b/mercurial/url.py Sat Jan 08 21:52:25 2011 +0900 @@ -498,7 +498,11 @@ for s in cert.get('subject', []): key, value = s[0] if key == 'commonName': - certname = value.lower() + try: + # 'subject' entries are unicode + certname = value.lower().encode('ascii') + except UnicodeEncodeError: + return _('IDN in certificate not supported') if (certname == dnsname or '.' in dnsname and certname == '*.' + dnsname.split('.', 1)[1]): return None