anchor.diff:  				ets:insert(client_ets, ClientRec),
   				?info("UDP port sync up:  ~p:~p", [Ip, InPortNo]),
   				% Record the UDP information in the state
  -				State0#state{udp_remote_info = {Ip, InPortNo}};
  +				State2 = State1#state{udp_remote_info = {Ip, InPortNo}},
  +				% See if we've completed the connection process
  +				{ok, State3} = confirm_connect_message(Message, State2),
  +				State3;
   			Else ->
   				?info("UDP not confirmed:  ~p", [Else]),
   				State
   		end,
   		inet:setopts(Socket, [{active, once}]),
  -		{noreply, State1};
  +		{noreply, State4};
   
   handle_info({udp, Socket, _Ip, _InPortNo, Packet}, #state{udp_socket = Socket} = State) ->
   	Message = aes_decrypt_envelope(Packet, State),
  
positive.code: 	OutBin = build_message({response, Message#envelope.id}, <<"control">>, ConnectRep),
  	SendRes = ssl:send(SSLSocket, OutBin),
  	?debug("Connect response ssl:send result:  ~p", [SendRes]),
  	?info("TCPSocket, UDPSocket: ~p, ~p", [TCPSocket, UDPSocket]),
  	case {TCPSocket, UDPSocket} of
  		{undefined, _} ->
  			{ok, State};
  		{_, undefined} ->
  			{ok, State};
  		_ ->
  			{ok, ChannelMgr} = pre_client_channels:start_link(),
  			NewClientInfo = ClientInfo#client_info{
  				channel_manager = ChannelMgr
  			},
  			NewState = State#state{
  				channel_mgr = ChannelMgr,
  				client_info = NewClientInfo
  			},
  			?info("Started pre_client_channels at ~p", [ChannelMgr]),
  			pre_hooks:async_trigger_hooks(client_logged_in, [NewClientInfo], all),
  			{ok, NewState}
  	end.
  
  %% ------------------------------------------------------------------
  
negative.code: 	#state{udp_socket = Socket, udp_remote_info = undefined} = State) ->
  		% Decrypt message envelope
  		Message = aes_decrypt_envelope(Packet, State),
  		Success = handle_udp_connect_message(Message, State),
  		State4 = case Success of
  			{ok, State1} ->
  				% Record this client's information in ETS
  				ClientRec = #client_connection{
  					pid = self(),
  