In the server process, reply(Client, {ok,10}) sends Client!{ok,10} but the client is waiting at receive {reply,Reply} -> Reply They don't match.