anchor.diff:  
     fOnRefresh := aOnRefresh;
   
  +  //Scan will launch upon create automatcally
     fScanning := True;
  -  fScanner := TTScanner.Create(fMultiplayerPath, MapAdd, MapAddDone);
  -  fScanner.OnTerminate := ScanComplete;
  -  fScanner.Resume;
  +  fScanner := TTScanner.Create(fMultiplayerPath, MapAdd, MapAddDone, ScanComplete);
   end;
   
   
  
positive.code: { TTScanner }
  //aOnMapAdd - signal that there's new map that should be added
  //aOnMapAddDone - signal that map has been added. Can safely call main thread methods since it's executed in Synchronize
  constructor TTScanner.Create(aMultiplayerPath: Boolean; aOnMapAdd: TMapEvent; aOnMapAddDone: TNotifyEvent);
  begin
    inherited Create(True);
    Assert(Assigned(aOnMapAdd));
  
    fMultiplayerPath := aMultiplayerPath;
    fOnMapAdd := aOnMapAdd;
    fOnMapAddDone := aOnMapAddDone;
    FreeOnTerminate := False;
  end;
  
  
  
negative.code:     fOnMapAdd: TMapEvent;
      fOnMapAddDone: TNotifyEvent;
    public
      constructor Create(aMultiplayerPath: Boolean; aOnMapAdd: TMapEvent; aOnMapAddDone, aOnComplete: TNotifyEvent);
      procedure MapAddDone;
      procedure Execute; override;
    end;
  