Hi, Thanks for your information. Yes, the designer is in the same assembly as the control it is designing. This assembly is seperate to the assembly containing the designer host, but as the designer host can 'see' the control, I'm sure it must have access to the designer as well. Both assemblies have full trust (they will only be used on intranet, and security protocols are already in use in other parts of the app, so it's not really a security risk). I have now resolved this problem. I used Reflector to see what TypeDescriptor.CreateDesigner(IComponent comp, Type designerBaseType) was doing, and copied the code to a local method so I could debug it. If you are interested, the problem appeared to be that Type.GetType(designerBaseType) was returning null. (the designerBaseType parameter was hard-coded to IDesigner). I got around this problem by changing all the controls (no, users will never add their own controls to this designer!) to use the constructor of the DesignerAttribute that accepts two parameters, and set the second one to the same type as the first. When the component is then added to the design form, I get the DesignerAttribute for that type, and call TypeDescriptor.CreateDesigner with the type specified in the second parameter of the attribute. OMG :omg: I don't really understand what I just wrote! :) - it you are really interested, feel free to email me and I'll try to explain in more detail!!! Thanks for your reply. Simon. PS: Is Reflector the most AMAZING tool for .NET development?!?!