To reproduce: use the following code: public Form1() { InitializeComponent(); this.radTreeView1.MultiSelect = true; for (int i = 0; i < 3; i++) { RadTreeNode node = new RadTreeNode(); node.Text = "Node." + i; for (int j = 0; j < 3; j++) { node.Nodes.Add(new RadTreeNode("Node." + i + "." + j)); } this.radTreeView1.Nodes.Add(node); } this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged; } private void radTreeView1_SelectedNodeChanged(object sender, Telerik.WinControls.UI.RadTreeViewEventArgs e) { Console.WriteLine(e.Node.Text + ">> Selected: " + e.Node.Selected); } 1.Select a node 2.Press Ctrl and click over the selected node again in order to unselect it. The SelectedNodeChanged event will not fire. Workaround: public class MyRadTreeNode : RadTreeNode { public MyRadTreeNode(string text) : base(text) { } private static readonly MethodInfo OnSelectedNodeChangedMethodInfo = typeof(RadTreeViewElement).GetMethod("OnSelectedNodeChanged", BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(RadTreeNode), typeof(RadTreeViewAction) }, null); protected override void OnNotifyPropertyChanged(PropertyChangedEventArgs args) { base.OnNotifyPropertyChanged(args); if (args.PropertyName == "Selected" && TreeViewElement != null) { OnSelectedNodeChangedMethodInfo.Invoke(TreeViewElement, new object[] { this, RadTreeViewAction.ByMouse }); } } }