anchor.diff:    Topic: TTopic;
   Begin
     ProfileEvent('DisplayTopic >>>>');
  -  case PageControl1.ActivePageIndex of
  -    0:  begin // TOC tab
  -          if tvContents.Selection = nil then
  -          begin
  -            ShowMessage('You must select a topic first by clicking it.');
  -            Exit;  //==>
  -          end
  -          else
  -            Topic := TTopic(tvContents.Selection.Data);
  -          ProfileEvent('Got Topic from Treeview');
  -        end;
  -    1:  begin // Index tab
  -          if lbIndex.FocusItem = -1 then
  -          begin
  -            ShowMessage('You must select a index first by clicking it.');
  -            Exit;  //==>
  -          end
  -          else
  -            Topic := TTopic(lbIndex.Items.Objects[lbIndex.FocusItem]);
  -          ProfileEvent('Got Topic from Index listbox');
  -        end;
  -    2:  begin // Search tab
  -          if lbSearchResults.FocusItem = -1 then
  -          begin
  -            ShowMessage('You must select a search result first by clicking it.');
  -            Exit;  //==>
  -          end
  -          else
  -            Topic := TTopic(lbSearchResults.Items.Objects[lbSearchResults.FocusItem]);
  -          ProfileEvent('Got Topic from Search Results listbox');
  -        end;
  -  end;
  +  if ATopic = nil then
  +  begin
  +    case PageControl1.ActivePageIndex of
  +      0:  begin // TOC tab
  +            if tvContents.Selection = nil then
  +            begin
  +              ShowMessage('You must select a topic first by clicking it.');
  +              Exit;  //==>
  +            end
  +            else
  +              Topic := TTopic(tvContents.Selection.Data);
  +            ProfileEvent('Got Topic from Treeview');
  +          end;
  +      1:  begin // Index tab
  +            if lbIndex.FocusItem = -1 then
  +            begin
  +              ShowMessage('You must select a index first by clicking it.');
  +              Exit;  //==>
  +            end
  +            else
  +              Topic := TTopic(lbIndex.Items.Objects[lbIndex.FocusItem]);
  +            ProfileEvent('Got Topic from Index listbox');
  +          end;
  +      2:  begin // Search tab
  +            if lbSearchResults.FocusItem = -1 then
  +            begin
  +              ShowMessage('You must select a search result first by clicking it.');
  +              Exit;  //==>
  +            end
  +            else
  +              Topic := TTopic(lbSearchResults.Items.Objects[lbSearchResults.FocusItem]);
  +            ProfileEvent('Got Topic from Search Results listbox');
  +          end;
  +    end;
  +  end  // case..
  +  else
  +    Topic := ATopic;  // use topic passed in as a parameter
  +
  +  if Topic = nil then
  +    raise Exception.Create('Unable to locate the Topic');
   
     RichView.Clear;
     ImageIndices := TList.Create;
  
positive.code:     LogEvent(LogStartup, 'Display first topic' );
      { TODO -oGraeme : Improved Display Topic method }
  //    DisplaySelectedContentsTopic;
      DisplayTopic;
    end;
  
    LogEvent(LogStartup, 'OpenFiles complete' );
  
negative.code:     lHelpFile := THelpFile(Files[FileIndex]);
      SaveNotes( lHelpFile );
    end;
  
    DisplayedIndex.Clear;
  
    // Now destroy help files
    for FileIndex := 0 to Files.Count - 1 do
  