The problem is with the forms designer... it reflects over your form to determine the properties that need to be serialized into the InitializeComponent() method. So, when you add your pages the first time, they are added to the InitializeComponent() method. However, when you inherit the form, and open the subform in the designer, it reflects over the object again, sees those pages and thinks it needs to add them to the subform's InitializeComponent() method because it doesn't know that they've already been added to the superclass's InitializeComponent() (for that matter, it doesn't even know that there is already an InitializeComponent() method in the superclass, so...). Unfortunately, you cannot access the Me.DesignMode property of a control within the constructor (because the property hasn't been set yet). So, you'll have to come up with some other type of flag that will indicate whether the form is within design mode, and if it's not in design mode (meaning it's runtime), you'll want to Clear() the pages collection of the panel manager before the InitializeComponent() is called in the inherited form.