The “Set” accessor in the Component’s “Parent” property should be changed to the following to avoid a condition where a component’s would be “orphaned” (have its “parent” property set to null and not appear in any GameScreen’s list of components) when its parent is set to the same value.
public GameScreen Parent
{
get { return parent; }
set
{
if (parent == value)
return;
if (parent != null)
parent.RemoveComponent(this);
parent = value;
if (value != null)
parent.AddComponent(this);
}
}
Thanks go to “Shane” for finding this bug. And for making me actually run all the stack traces to check my code instead of lazily assuming it would work.
« Game Engine Tutorial Part IV, Section 1 – 2D Components Moving to XNA 3.1 »

Why I have such feeling that this the Parent property is the same as in the GameScreen article
so do i worry about this after building the gamescreen?