Index: kernel/kcomponentdata.cpp =================================================================== --- kernel/kcomponentdata.cpp (revision 681384) +++ kernel/kcomponentdata.cpp (working copy) @@ -64,7 +64,7 @@ return d == rhs.d; } -KComponentData::KComponentData(const QByteArray &name) +KComponentData::KComponentData(const QByteArray &name, MainComponentRegistration registerAsMain) : d(new KComponentDataPrivate) { Q_ASSERT(!name.isEmpty()); @@ -72,7 +72,7 @@ d->name = name; d->aboutData = new KAboutData(name, "", 0); - if (name != "kdeinit4") { + if (registerAsMain == RegisterAsMainComponent) { KGlobal::newComponentData(*this); } } Index: kernel/kcomponentdata.h =================================================================== --- kernel/kcomponentdata.h (revision 681384) +++ kernel/kcomponentdata.h (working copy) @@ -85,12 +85,17 @@ */ bool operator!=(const KComponentData &rhs) const { return !operator==(rhs); } + enum MainComponentRegistration { + RegisterAsMainComponent, + SkipMainComponentRegistration + }; + /** * Constructor. * * @param componentName the name of the component. */ - explicit KComponentData(const QByteArray &componentName); + explicit KComponentData(const QByteArray &componentName, MainComponentRegistration = RegisterAsMainComponent); /** * Constructor.