anchor.diff:          end;
       4:  begin
             SetActionLockedStay(11,ua_Work1,false);
  -          gTerrain.FlattenTerrain(Cells[Step]);
  +          gTerrain.FlattenTerrain(CellsToDig[LastToDig]);
           end;
       5:  begin
             SetActionLockedStay(11,ua_Work1,false);
  -          gTerrain.FlattenTerrain(Cells[Step]);
  +          gTerrain.FlattenTerrain(CellsToDig[LastToDig]);
           end;
       6:  begin
             SetActionLockedStay(11,ua_Work1,false);
  -          gTerrain.FlattenTerrain(Cells[Step]);
  -          gTerrain.FlattenTerrain(Cells[Step]); //Flatten the terrain twice now to ensure it really is flat
  -          gTerrain.SetTileLock(Cells[Step], tlDigged); //Block passability on tile
  -          if KMSamePoint(fHouse.GetEntrance, Cells[Step]) then
  +          gTerrain.FlattenTerrain(CellsToDig[LastToDig]);
  +          gTerrain.FlattenTerrain(CellsToDig[LastToDig]); //Flatten the terrain twice now to ensure it really is flat
  +          gTerrain.SetTileLock(CellsToDig[LastToDig], tlDigged); //Block passability on tile
  +          if KMSamePoint(fHouse.GetEntrance, CellsToDig[LastToDig]) then
               gTerrain.SetField(fHouse.GetEntrance, Owner, ft_Road);
  -          gTerrain.RemoveObject(Cells[Step]); //All objects are removed
  -          dec(Step);
  +          gTerrain.RemoveObject(CellsToDig[LastToDig]); //All objects are removed
  +          Dec(LastToDig);
           end;
       7:  begin
             //Walk away from building site, before we get trapped when house becomes stoned
  
positive.code:         Result := TaskDone;
    end;
  
    inc(fPhase);
  
    if (fPhase = 7) and (Step > 0) then
      fPhase := 2; //Repeat with next cell
  end;
  
  
  procedure TTaskBuildHouseArea.Save(SaveStream:TKMemoryStream);
  var i:integer;
  begin
    inherited;
    if fHouse <> nil then
      SaveStream.Write(fHouse.UID) //Store ID, then substitute it with reference on SyncLoad
    else
  
negative.code: 
  
  { TTaskBuildHouseArea }
  constructor TTaskBuildHouseArea.Create(aWorker: TKMUnitWorker; aHouseType: THouseType; aLoc: TKMPoint; aID: Integer);
  var
    I,K: Integer;
    HA: THouseArea;
  begin
    inherited Create(aWorker);
  