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:     fReadyToStop: Boolean;
      fGameSeed: Integer;
  
      procedure GameMPDisconnect(const aData: UnicodeString);
      procedure OtherPlayerDisconnected(aDefeatedPlayerHandId: Integer);
      procedure MultiplayerRig;
  
negative.code:   fullPath, RngPath, mpLocalDataPath, NewSaveName: UnicodeString;
  begin
    //Convert name to full path+name
    fullPath := SaveName(aSaveName, EXT_SAVE_MAIN, IsMultiplayer);
    mpLocalDataPath := SaveName(aSaveName, EXT_SAVE_MP_LOCAL, IsMultiplayer);
  
    SaveGameToFile(fullPath, aTimestamp, mpLocalDataPath);
  
  