anchor.diff:    //Remember which savegame to try to restart (if game was not saved before)
     fSaveFile := ExtractRelativePath(ExeDir, fullPath);
   
  -  NewSaveName := SaveName(aSaveName, EXT_SAVE_BASE, IsMultiPlayerOrSpec);
  +  NewSaveName := SaveName(aSaveName, EXT_SAVE_BASE, IsMultiplayer);
     //Copy basesave so we have a starting point for replay
  -  KMCopyFile(SaveName('basesave', EXT_SAVE_BASE, IsMultiPlayerOrSpec), NewSaveName, True);
  +  if IsReplay then
  +  begin
  +    //Game was saved from replay (.bas file)
  +    if FileExists(fLoadFromFile) then
  +      KMCopyFile(fLoadFromFile, NewSaveName, True);
  +  end else
  +    //Normally saved game
  +    KMCopyFile(SaveName('basesave', EXT_SAVE_BASE, IsMultiplayer), NewSaveName, True);
   
     //Save replay queue
     gLog.AddTime('Saving replay info');
  
positive.code:   fBlockGetPointer := False;
    fLastTimeUserAction := TimeGet;
    fLastAfkMessageSent := 0;
  
    if fGameMode in [gmReplaySingle, gmReplayMulti] then
      fSavedReplays := TKMSavedReplays.Create();
  
negative.code:   try
      if not FileExists(aPathName) then
        raise Exception.Create('Savegame could not be found at ''' + aPathName + '''');
  
      fLoadFromFile := aPathName;
  
      LoadStream.LoadFromFile(aPathName);
  
  