Index: src/bin/psql/command.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/command.c,v
retrieving revision 1.150
diff -c -c -r1.150 command.c
*** src/bin/psql/command.c	18 Jul 2005 20:57:53 -0000	1.150
--- src/bin/psql/command.c	25 Jul 2005 17:13:42 -0000
***************
*** 911,916 ****
--- 911,917 ----
  	const char *dbparam = NULL;
  	const char *userparam = NULL;
  	const char *pwparam = NULL;
+ 	char       *password_prompt = NULL;
  	char	   *prompted_password = NULL;
  	bool		need_pass;
  	bool		success = false;
***************
*** 930,938 ****
  	else
  		userparam = new_user;
  
  	/* need to prompt for password? */
  	if (pset.getPassword)
! 		pwparam = prompted_password = simple_prompt("Password: ", 100, false);
  
  	/*
  	 * Use old password (if any) if no new one given and we are
--- 931,948 ----
  	else
  		userparam = new_user;
  
+ 	if (userparam == NULL) 
+ 		password_prompt = strdup("Password: ");
+ 	else
+ 	{
+ 		password_prompt = malloc(strlen("Password for user %s: ") - 2 +
+ 								 strlen(userparam) + 1);
+ 		sprintf(password_prompt,"Password for user %s: ", userparam);
+ 	}
+ 
  	/* need to prompt for password? */
  	if (pset.getPassword)
! 		pwparam = prompted_password = simple_prompt(password_prompt, 100, false);
  
  	/*
  	 * Use old password (if any) if no new one given and we are
***************
*** 956,966 ****
  			need_pass = true;
  			free(prompted_password);
  			prompted_password = NULL;
! 			pwparam = prompted_password = simple_prompt("Password: ", 100, false);
  		}
  	} while (need_pass);
  
  	free(prompted_password);
  
  	/*
  	 * If connection failed, try at least keep the old one. That's
--- 966,977 ----
  			need_pass = true;
  			free(prompted_password);
  			prompted_password = NULL;
! 			pwparam = prompted_password = simple_prompt(password_prompt, 100, false);
  		}
  	} while (need_pass);
  
  	free(prompted_password);
+ 	free(password_prompt);
  
  	/*
  	 * If connection failed, try at least keep the old one. That's
Index: src/bin/psql/startup.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/startup.c,v
retrieving revision 1.119
diff -c -c -r1.119 startup.c
*** src/bin/psql/startup.c	14 Jul 2005 08:42:37 -0000	1.119
--- src/bin/psql/startup.c	25 Jul 2005 17:13:42 -0000
***************
*** 106,111 ****
--- 106,112 ----
  
  	char	   *username = NULL;
  	char	   *password = NULL;
+ 	char       *password_prompt = NULL;
  	bool		need_pass;
  
  	set_pglocale_pgservice(argv[0], "psql");
***************
*** 188,195 ****
  			username = pg_strdup(options.username);
  	}
  
  	if (pset.getPassword)
! 		password = simple_prompt("Password: ", 100, false);
  
  	/* loop until we have a password if requested by backend */
  	do
--- 189,205 ----
  			username = pg_strdup(options.username);
  	}
  
+ 	if (options.username == NULL)
+ 		password_prompt = strdup("Password: ");
+ 	else
+ 	{
+ 		password_prompt = malloc(strlen("Password for user %s: ") - 2 +
+ 								 strlen(options.username) + 1);
+ 		sprintf(password_prompt,"Password for user %s: ", options.username);
+ 	}
+ 	
  	if (pset.getPassword)
! 		password = simple_prompt(password_prompt, 100, false);
  
  	/* loop until we have a password if requested by backend */
  	do
***************
*** 207,218 ****
  			need_pass = true;
  			free(password);
  			password = NULL;
! 			password = simple_prompt("Password: ", 100, false);
  		}
  	} while (need_pass);
  
  	free(username);
  	free(password);
  
  	if (PQstatus(pset.db) == CONNECTION_BAD)
  	{
--- 217,229 ----
  			need_pass = true;
  			free(password);
  			password = NULL;
! 			password = simple_prompt(password_prompt, 100, false);
  		}
  	} while (need_pass);
  
  	free(username);
  	free(password);
+ 	free(password_prompt);
  
  	if (PQstatus(pset.db) == CONNECTION_BAD)
  	{
