Here I am yet again

I am attempting to 'redraw' a parent node after editing a child node name via the OnEdited event to re-sort the folders, code as below, original code courtesy of GetMem ......
procedure TForm1.TreeViewEdited(Sender: TObject; Node: TTreeNode; var S: string
);
var
OldPath: String;
NewPath: String;
aNode:TTreeNode; // added
begin
OldPath := TShellTreeNode(Node).FullFilename;
NewPath := TShellTreeNode(Node).BasePath + S;
aNode:=Node.Parent; // added - aNode = Parent of edited node
if TShellTreeNode(Node).IsDirectory then
begin
OldPath := AppendPathDelim(OldPath);
NewPath := AppendPathDelim(NewPath);
end;
// str:=aNode.Text;
if not RenameFile(OldPath, NewPath) then
begin
S := Node.Text;
MessageDlg('Cannot rename the folder...'+sLineBreak+sLineBreak+
S, mtError, [mbOK], 0);
end
else begin
aNode.Expand(False); // added
aNode.Expanded:=True; // added
end;
end;
...Line 10 sets the aNode var to parent of the edited node, and lines 24 and 25 'should', as far as I can see, refresh the node of the selected item that was edited. But it only half does it, The renamed folder appears in it's correct sorted position, but it's also displayed at it's original position, it looks like it's overwritten an existing folder, but it's just a display glitch, if I manually close and open the folder it all displays correctly.
I keep thinking that maybe the OnEdited event is not the right place to add to, but I can't see any other logical place to add this 'Redraw' code.