anchor.diff:      CurrentTopic: TTopic; // so we can get easy access to current topic viewed
   
       procedure   RichViewClickLink(Sender: TRichTextView; Link: string);
  +    procedure   IndexSearchEditKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState; var Consumed: boolean);
       procedure   MainFormShow(Sender: TObject);
       procedure   MainFormDestroy(Sender: TObject);
       procedure   miFileQuitClicked(Sender: TObject);
  
positive.code:     procedure   lbIndexDoubleClick(Sender: TObject; AButton: TMouseButton; AShift: TShiftState; const AMousePos: TPoint);
      procedure   lbSearchResultsDoubleClick(Sender: TObject; AButton: TMouseButton; AShift: TShiftState; const AMousePos: TPoint);
      procedure   btnSearchClicked(Sender: TObject);
      procedure   DisplaySelectedSearchResultTopic;
      procedure   UpdateLocationPanel;
      procedure   EnableControls;
  
negative.code: procedure TMainForm.btnSearchClicked(Sender: TObject);
  begin
    DoSearch;
  end;
  
  procedure TMainForm.IndexSearchEditOnChange(Sender: TObject);
  var
    tmpMatchIndex: longint;
    tmpSearchText: string;
    i: longint;
  Begin
    if InIndexSearch then
      exit;
  
    tmpMatchIndex := -1;
    tmpSearchText := trim(IndexSearchEdit.Text);
  
    for i := 0 to DisplayedIndex.Count - 1 do
    begin
      if StrStartsWithIgnoringCase(DisplayedIndex[i], tmpSearchText) then
      begin
        tmpMatchIndex := i;
        break;
      end;
    end;
  
    if tmpMatchIndex = -1 then
      exit;
  
    InIndexSearch:= true;
  
  
    if lbIndex.FocusItem <> tmpMatchIndex then
      lbIndex.FocusItem := tmpMatchIndex;
  
    InIndexSearch:= false;
  end;
  
  procedure TMainForm.DisplaySelectedSearchResultTopic;
  