anchor.diff:  	io:format("~p Got Call ~p~n", [self(), Msg]),
   	{reply, ok, State}.
   
  -handle_cast({buffer, Buffer}, State = #state{text = TextCtrl}) ->
  -	wxTextCtrl:setValue(TextCtrl, Buffer),
  +handle_cast({buffer, Buffer}, State = #state{win = Win}) ->
  +	%% TODO: Update text by triggering paint events instead, setting updated areas as dirty.
  +	DC = wxClientDC:new(Win),
  +	ok = wxDC:clear(DC),
  +	ok = wxDC:drawText(DC, Buffer, {0, 0}),
  +	wxClientDC:destroy(DC),
   	{noreply, State#state{buffer = Buffer}};
   handle_cast(Msg, State) ->
   	io:format("~p Got Cast ~p~n", [self(), Msg]),
  
positive.code: 			"erledit", % window title
  			[{size, {600, 400}}]),
  	
  	TextCtrl = wxTextCtrl:new(Frame, -1, [{style, ?wxTE_MULTILINE}]),
  
  	wxFrame:createStatusBar(Frame),
  	ok = wxFrame:setStatusText(Frame, "",[]),
  
  	%% Subscribe to events.
  	wxFrame:connect(Frame, close_window),
  	wxFrame:connect(TextCtrl, char),
  
  	wxWindow:show(Frame),
  	{Frame, TextCtrl}.
  
negative.code: 
  init([]) ->
  	wx:new(),
  	{Frame} = create_window(),
  	gen_server:cast(data_buffer, {subscribe, self()}),
  	{ok, #state{win = Frame}}.
  
  terminate(_Reason, _State) ->
  	io:format("~p Cleaning up~n", [self()]),
  