anchor.diff:      keyUp, keyLeft:
         begin
           consumed := True;
  -        nbr := FindNeighbor(fsdPrev);
  +        nbr := FindNeighbour(fsdPrev);
           if nbr = Self then
  -          nbr := FindNeighbor(fsdLast);
  +          nbr := FindNeighbour(fsdLast);
           nbr.SetFocus;
           nbr.Checked := True;
         end;
       keyDown, keyRight:
         begin
           consumed := True;
  -        nbr := FindNeighbor(fsdNext);
  +        nbr := FindNeighbour(fsdNext);
           if nbr = Self then
  -          nbr := FindNeighbor(fsdFirst);
  +          nbr := FindNeighbour(fsdFirst);
           nbr.SetFocus;
           nbr.Checked := True;
         end;
  
positive.code:     
      for i := 0 to Parent.ComponentCount-1 do
      begin
        wg := TfpgWidget(Parent.Components[i]);
        if (wg <> nil) and (wg is TfpgRadioButton) and
           wg.Visible and wg.Enabled and wg.Focusable and
           (TfpgRadioButton(wg).GroupIndex = GroupIndex) then
        begin
          case direction of
            fsdFirst:
              if (wg.TabOrder < bestdtab) then
              begin
                Result   := TfpgRadioButton(wg);
                bestdtab := wg.TabOrder;
              end;
                
            fsdLast:
              if (wg.TabOrder >= bestdtab) then
              begin
                Result   := TfpgRadioButton(wg);
                bestdtab := wg.TabOrder;
              end;
          
            fsdNext:
              if wg = Self then
                FoundIt := True
              else
              begin
                if ((wg.TabOrder > Self.TabOrder) and (wg.TabOrder < bestdtab)) or
                   ((wg.TabOrder = Self.TabOrder) and FoundIt) then
                begin
                  Result   := TfpgRadioButton(wg);
                  bestdtab := wg.TabOrder;
                end;
              end;
              
            fsdPrev:
              if wg = Self then
                FoundIt := True
              else
              begin
                if ((wg.TabOrder < Self.TabOrder) and (wg.TabOrder >= bestdtab)) or
                   ((wg.TabOrder = Self.TabOrder) and not FoundIt) then
                begin
                  Result   := TfpgRadioButton(wg);
                  bestdtab := wg.TabOrder;
                end;
              end;
          end; { case }
        end; { if }
      end;  { for }
    end;  { if }
  end;
  
  
negative.code:   inherited HandleKeyRelease(keycode, shiftstate, consumed);
  end;
  
  function TfpgRadioButton.FindNeighbour(direction: TFocusSearchDirection): TfpgRadioButton;
  var
    i: integer;
    wg: TfpgWidget;
  