anchor.diff:  	LiteralChars = lists:reverse(LiteralCharsRev),
   	{W, _} = wxDC:getTextExtent(DC, LiteralChars),
   	ok = wxDC:drawText(DC, LiteralChars, {XStart, Y}),
  -	draw_buffer_line(DC, T, [], (((XStart + W) div (4 * SpaceWidth)) + 1) * (4 * SpaceWidth), Y, SpaceWidth);
  +	draw_buffer_line(DC, T, [], (((XStart + W - ?TEXT_AREA_START) div (4 * SpaceWidth)) + 1) * (4 * SpaceWidth) + ?TEXT_AREA_START, Y, SpaceWidth);
   draw_buffer_line(DC, [Char|T], LiteralCharsRev, XStart, Y, SpaceWidth) ->
   	draw_buffer_line(DC, T, [Char|LiteralCharsRev], XStart, Y, SpaceWidth).
   
   draw_caret(DC, Buffer, Caret, LineHeight, SpaceWidth) ->
   	#ee_buffer_coords{line_no = LineNo, line_offset = LineOffset} = ee_caret:caret_to_buffer_coords(Caret, Buffer),
   	Line = ee_buffer:get_line(Buffer, LineNo),
  -	draw_caret_on_line(DC, lists:sublist(ee_buffer:get_line_contents(Line), LineOffset - 1), [], 0, (LineNo - 1) * LineHeight, LineHeight, SpaceWidth).
  +	draw_caret_on_line(DC, lists:sublist(ee_buffer:get_line_contents(Line), LineOffset - 1), [], ?TEXT_AREA_START, (LineNo - 1) * LineHeight, LineHeight, SpaceWidth).
   
   draw_caret_on_line(DC, [], LiteralCharsRev, XStart, Y, H, _) ->
   	LiteralChars = lists:reverse(LiteralCharsRev),
   	{W, _} = wxDC:getTextExtent(DC, LiteralChars),
  +	wxDC:setPen(DC, ?wxBLACK_PEN),
   	ok = wxDC:drawLine(DC, {XStart + W, Y}, {XStart + W, Y + H});
   draw_caret_on_line(DC, [?ASCII_TAB|T], LiteralCharsRev, XStart, Y, H, SpaceWidth) ->
   	LiteralChars = lists:reverse(LiteralCharsRev),
   	{W, _} = wxDC:getTextExtent(DC, LiteralChars),
  -	draw_caret_on_line(DC, T, [], (((XStart + W) div (4 * SpaceWidth)) + 1) * (4 * SpaceWidth), Y, H, SpaceWidth);
  +	draw_caret_on_line(DC, T, [], (((XStart + W - ?TEXT_AREA_START) div (4 * SpaceWidth)) + 1) * (4 * SpaceWidth) + ?TEXT_AREA_START, Y, H, SpaceWidth);
   draw_caret_on_line(DC, [Char|T], LiteralCharsRev, XStart, Y, H, SpaceWidth) ->
   	draw_caret_on_line(DC, T, [Char|LiteralCharsRev], XStart, Y, H, SpaceWidth).
   
  
positive.code: 
  create_window() ->
  	%% Create the window.
  	Window = wxFrame:new(wx:null(), -1, "erledit", [{size, {600, 400}}]),
  	StatusBar = wxFrame:createStatusBar(Window),
  	ok = wxStatusBar:setStatusText(StatusBar, ""),
  
  
negative.code: 	ok;
  draw_buffer(Window, Buffer, Caret, BlinkCaretState) ->
  	DC = wxPaintDC:new(Window),
  	{_Width, Height} = wxDC:getSize(DC),
  	ok = wxDC:setBackground(DC, ?wxWHITE_BRUSH),
  	Font = wxFont:new(10, ?wxFONTFAMILY_TELETYPE, ?wxFONTSTYLE_NORMAL, ?wxFONTWEIGHT_NORMAL),
  	ok = wxDC:setFont(DC, Font),
  	{SpaceWidth, LineHeight} = wxDC:getTextExtent(DC, " "),
  	ok = wxDC:clear(DC),
  	wxDC:setPen(DC, ?wxTRANSPARENT_PEN),
  	Brush0 = wxBrush:new({228, 228, 228}),
  	wxDC:setBrush(DC, Brush0),
  	wxDC:drawRectangle(DC, {?NUMBER_MARGIN_START, 0, ?NUMBER_MARGIN_WIDTH, Height}),
  	Brush1 = wxBrush:new({247, 247, 247}),
  	wxDC:setBrush(DC, Brush1),
  	wxBrush:destroy(Brush0),
  	wxDC:drawRectangle(DC, {?TEXT_MARGIN_START, 0, ?TEXT_MARGIN_WIDTH, Height}),
  	wxDC:setBrush(DC, ?wxGREY_BRUSH),
  	wxBrush:destroy(Brush1),
  	ok = draw_buffer_lines(DC, Buffer, LineHeight, SpaceWidth),
  	case BlinkCaretState of
  		on ->
  