--- a/libpurple/protocols/jabber/jabber.c Thu Apr 09 01:59:24 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Thu Apr 09 04:27:58 2009 +0000 @@ -1059,22 +1059,24 @@ group = purple_request_field_group_new(NULL); purple_request_fields_add_group(fields, group); - if(js->registration) - field = purple_request_field_string_new("username", _("Username"), js->user->node, FALSE); - else - field = purple_request_field_string_new("username", _("Username"), NULL, FALSE); - - purple_request_field_group_add_field(group, field); - - if(js->registration) - field = purple_request_field_string_new("password", _("Password"), - purple_connection_get_password(js->gc), FALSE); - else - field = purple_request_field_string_new("password", _("Password"), NULL, FALSE); - - purple_request_field_string_set_masked(field, TRUE); - purple_request_field_group_add_field(group, field); - + if(xmlnode_get_child(query, "username")) { + if(js->registration) + field = purple_request_field_string_new("username", _("Username"), js->user->node, FALSE); + else + field = purple_request_field_string_new("username", _("Username"), NULL, FALSE); + + purple_request_field_group_add_field(group, field); + } + if(xmlnode_get_child(query, "password")) { + if(js->registration) + field = purple_request_field_string_new("password", _("Password"), + purple_connection_get_password(js->gc), FALSE); + else + field = purple_request_field_string_new("password", _("Password"), NULL, FALSE); + + purple_request_field_string_set_masked(field, TRUE); + purple_request_field_group_add_field(group, field); + } if(xmlnode_get_child(query, "name")) { if(js->registration) field = purple_request_field_string_new("name", _("Name"), @@ -1422,6 +1424,7 @@ g_free(js->old_uri); g_free(js->old_track); g_free(js->expected_rspauth); + g_free(js->last_disco_server); if (js->keepalive_timeout != -1) purple_timeout_remove(js->keepalive_timeout);