anchor.diff:  
   
   function TKMUnitWorker.UpdateState: Boolean;
  +var
  +  H: TKMHouseInn;
   begin
     Result := True; //Required for override compatibility
     if fCurrentAction = nil then
       raise ELocError.Create(gRes.Units[UnitType].GUIName + ' has no action at start of TKMUnitWorker.UpdateState', fCurrPosition);
     if inherited UpdateState then Exit;
   
  -  CheckCondition;
  -
  -  if (fThought = th_Build) and (fUnitTask = nil) then
  +  if fCondition < UNIT_MIN_CONDITION then
  +  begin
  +    H := gHands[fOwner].FindInn(fCurrPosition, Self);
  +    if H <> nil then
  +      fUnitTask := TKMTaskGoEat.Create(H, Self);
  +  end;
  +
  +  if (fThought = th_Build)and(fUnitTask = nil) then
       fThought := th_None; //Remove build thought if we are no longer doing anything
   
     //If we are still stuck on a house for some reason, get off it ASAP
  
positive.code: procedure TKMUnit.Feed(Amount: Single);
  begin
    fCondition := Math.min(fCondition + Round(Amount), UNIT_MAX_CONDITION);
  end;
  
  
  function TKMUnit.IsHungry: Boolean;
  begin
    Result := fCondition < UNIT_MIN_CONDITION;
  end;
  
  
  
negative.code:     procedure Deliver(aFrom: TKMHouse; toHouse: TKMHouse; Res: TKMWareType; aID: integer); overload;
      procedure Deliver(aFrom: TKMHouse; toUnit: TKMUnit; Res: TKMWareType; aID: integer); overload;
      function TryDeliverFrom(aFrom: TKMHouse): Boolean;
  
      property Carry: TKMWareType read fCarry;
      procedure CarryGive(Res: TKMWareType);
  