anchor.diff:  destructor TTaskBuildHouseArea.Destroy;
   begin
     //Allow other workers to take this task
  -  if BuildID<>0 then fPlayers.Player[byte(fUnit.GetOwner)].BuildList.ReOpenHousePlan(buildID);
  +  if BuildID<>0 then fPlayers.Player[byte(fUnit.GetOwner)].BuildList.ReOpenHousePlan(BuildID);
   
     if HouseSet and (fHouse<>nil) then
       fPlayers.Player[byte(fUnit.GetOwner)].RemHouse(fHouse.GetPosition,true);
  
positive.code:     SaveStream.Write(fHouse.ID) //Store ID, then substitute it with reference on SyncLoad
    else
      SaveStream.Write(Zero);
    SaveStream.Write(buildID);
    SaveStream.Write(CurLoc);
    Cells.Save(SaveStream);
  end;
  
negative.code: 
  destructor TTaskBuildWine.Destroy;
  begin
    if BuildID<>0 then fPlayers.Player[byte(fUnit.GetOwner)].BuildList.ReOpenRoad(BuildID); //Allow other workers to take this task
    if DemandSet  then fPlayers.Player[byte(fUnit.GetOwner)].DeliverList.RemoveDemand(fUnit);
    if MarkupSet  then fTerrain.RemMarkup(fLoc);
    Inherited;
  