anchor.diff:  			map_print(P,Map);
   		{ok,{changes,_Rowid,_NChanged}} ->
   			print(P,"Schema updated.",[]);
  -		{'EXIT',{noproc,_}} when P#dp.env == wx ->
  +		{error,{login_failed,_}} when P#dp.env == wx ->
   			wxproc ! dologin,
   			P;
   		{'EXIT',{noproc,_}} ->
  
positive.code: 	P.
  
  dologin(P) ->
  	PoolInfo = [{size, 1}, {max_overflow, 5}],
  	WorkerParams = [{hostname, P#dp.addr},
  		{username, P#dp.username},
  
negative.code: 			file:delete("/tmp/comfile"),
  			ReqPipe = open_port(binary_to_list(Req), [in,eof,binary]),
  			RespPipe = open_port(binary_to_list(Resp), [out,eof,binary]),
  			P = setpw(parse_args(#dp{req = ReqPipe, resp = RespPipe, env = shell},Args))
  	end,
  	dologin(P),
  	case P#dp.execute of
  		undefined ->
  			case P#dp.curdb of
  