anchor.diff:  
     //First make sure the animal isn't stuck (check passibility of our position)
     if (not fTerrain.CheckPassability(fCurrPosition,GetDesiredPassability))
  -  or fTerrain.CheckAnimalIsStuck(fCurrPosition,GetDesiredPassability,false) then begin
  +  or fTerrain.CheckAnimalIsStuck(fCurrPosition,GetDesiredPassability) then begin
       KillUnit; //Animal is stuck so it dies
       exit;
     end;
  
positive.code:   if (fUnitType in [ut_Woodcutter, ut_Farmer, ut_Fisher, ut_StoneCutter])
    and (fUnitTask is TTaskMining)
    then
      Result := CanWalk;
  
    //aIgnoreRoads means we are desperate enough to ignore roads (e.g. when looking for an Inn)
    if aIgnoreRoads then
      Result := CanWalk;
  end;
  
  
negative.code: 
  
  //Specific unit desired passability may depend on several factors
  function TKMUnit.GetDesiredPassability: TPassability;
  begin
    Result := fResource.UnitDat[fUnitType].DesiredPassability;
  
  