anchor.diff:    else
       fCtrlDown := nil;
   
  +  fCtrl.ControlMouseUp(CtrlUp, Shift); // Must be invoked before CtrlUp.MouseUp to avoid problems on game Exit
     if CtrlUp <> nil then
  -  begin
  -    fCtrl.ControlMouseUp(CtrlUp, Shift); // Must be invoked before CtrlUp.MouseUp to avoid problems on game Exit
       CtrlUp.MouseUp(X, Y, Shift, Button);
  -  end;
   
     //Do not place any code here, we could have Exited in OnClick event
   end;
  
positive.code: procedure TKMMasterControl.MouseDown(X,Y: Integer; Shift: TShiftState; Button: TMouseButton);
  begin
    CtrlDown := HitControl(X,Y);
    if CtrlDown <> nil then
    begin
      fCtrl.ControlMouseDown(CtrlDown, Shift);
      CtrlDown.MouseDown(X, Y, Shift, Button);
    end;
  end;
  
  
  
negative.code:       SetSelections(CursorPos, SelectionEnd)
      else if aPrevCursorPos = SelectionEnd then
        SetSelections(SelectionStart, CursorPos);
    end else
      SetSelections(aPrevCursorPos, CursorPos);
  end;
  
  
  