anchor.diff:    begin
       //First find out the AreaID for this rect area BEFORE the change (must only be one!)
       AreaID := 0;
  -    for X := aRect.Left to aRect.Right do
  -      for Y := aRect.Top to aRect.Bottom do
  +    for Y := aRect.Top to aRect.Bottom do
  +      for X := aRect.Left to aRect.Right do
           if (Land[Y,X].WalkConnect[aWC] <> 0) and (Land[Y,X].WalkConnect[aWC] <> AreaID) then
           begin
             Assert(AreaID = 0, 'Must not do local walk connect update with multiple AreaIDs in Rect');
  
positive.code:   SetLength(LocalWalkConnect, (aRect.Bottom-aRect.Top)+1, (aRect.Right-aRect.Left)+1);
  
    FoundAnArea := False;
    for X := aRect.Left to aRect.Right do
      for Y := aRect.Top to aRect.Bottom do
        if not LocalWalkConnect[Y - aRect.Top, X - aRect.Left] //Untested area
          and (aPass in gTerrain.Land[Y,X].Passability) then //Passability matches
        begin
  
negative.code:   begin
      //First find out the AreaID for this rect area BEFORE the change (must only be one!)
      AreaID := 0;
      for Y := aRect.Top to aRect.Bottom do
        for X := aRect.Left to aRect.Right do
          if (Land[Y,X].WalkConnect[aWC] <> 0) and (Land[Y,X].WalkConnect[aWC] <> AreaID) then
          begin
            //If we already found a different AreaID then there's more than one, so we can exit immediately
  