Runtime fault TMenuItem

When i runtime create menu items like:

// Clear menuitems
While MenuTest.Count > 0 do begin
  mi := MenuTest.Items [0];
  MenuTest.Delete;
  mi.Free;
end;
// add menuitems
for x := 0 to sl.Count - 1 do begin
  mi := TMenuItem.Create;
  mi.Caption := sl [x];
  mi.Tag := x
  mi.OnClick := MyHandler;
  MenuTest.Add (mi);
end;

the result is 1 item add instead of 3.
the second time this code is ok.
The code will be ok the first time if the Tag of the menuitem stays zero.

Is this maybe a bug in delphi?