Index: modules/openid/openid.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.module,v
retrieving revision 1.46
diff -u -p -r1.46 openid.module
--- modules/openid/openid.module	24 May 2009 17:39:33 -0000	1.46
+++ modules/openid/openid.module	26 May 2009 09:09:23 -0000
@@ -284,8 +284,13 @@ function openid_discovery($claimed_id) {
   if (_openid_is_xri($claimed_id)) {
     $xrds_url = 'http://xri.net/' . $claimed_id;
   }
-  $scheme = @parse_url($xrds_url, PHP_URL_SCHEME);
-  if ($scheme == 'http' || $scheme == 'https') {
+  $parsed_url = @parse_url($xrds_url);
+  if (!empty($parsed_url['user'])) {
+    // Remove username part from URL.
+    $xrds_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . $parsed_url['path'];
+    $xrds_url .= !empty($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
+  }
+  if ($parsed_url['scheme'] == 'http' || $parsed_url['scheme'] == 'https') {
     // For regular URLs, try Yadis resolution first, then HTML-based discovery
     $headers = array('Accept' => 'application/xrds+xml');
     $result = drupal_http_request($xrds_url, array('headers' => $headers));
