Curtis, I am trying to control the number of instances of each form as well. So, working off of the previous code, I added this: public static void LoadFormType(Type formType, Form parentForm, int instances) { lock( typeof( FormLoader ) ) { if( eh == null ) { eh = new EventHandler( FormClosed ); } } if( IsAlreadyLoaded( formType ) ) { Form f = GetForm( formType ); f.Focus(); f.BringToFront(); return; } Form frm = (Form)Activator.CreateInstance(formType); FlagAsLoaded( formType, frm, instances );// DictionaryEntry[] myArr = new DictionaryEntry[m_InitializedForms.Count];//added m_InitializedForms.CopyTo( myArr, 0 );//added if(myArr[m_InitializedForms[formType.FullName]].Value <= instances)//added, clearly the cast types are wrong, but you get the idea { frm.Closed += eh; frm.Show(); } } private static void FlagAsLoaded( Type formType, Form f, int instances )// { m_InitializedForms[formType.FullName] = f; m_InitializedForms.Add(f, instances);//added } Then I would load a form as such: FormLoader.LoadFormType(typeof(Form2), this, 1); "1" indicating how many instances of the form should be allowed. Thanks again for your help. -- modified at 8:31 Monday 19th December, 2005