diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro
index 7c7b8197fde31a8de19e7f2d42717d150511fb7a..eea45580cc44e1c0cd884825ff4e321b06db1d9f 100644
--- a/src/plugins/debugger/debugger.pro
+++ b/src/plugins/debugger/debugger.pro
@@ -68,7 +68,6 @@ HEADERS += \
     watchdelegatewidgets.h \
     debuggerruncontrolfactory.h \
     debuggertooltipmanager.h \
-    debuggertoolchaincombobox.h \
     debuggersourcepathmappingwidget.h \
     memoryview.h \
     qtmessagelogwindow.h \
@@ -122,7 +121,6 @@ SOURCES += \
     stackframe.cpp \
     watchdelegatewidgets.cpp \
     debuggertooltipmanager.cpp \
-    debuggertoolchaincombobox.cpp \
     debuggersourcepathmappingwidget.cpp \
     memoryview.cpp \
     qtmessagelogwindow.cpp \
diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs
index d0582de05d16c598af41f138722432c7922f3444..9b98f2c53aadffb0534db596aeece19c64a5dac7 100644
--- a/src/plugins/debugger/debugger.qbs
+++ b/src/plugins/debugger/debugger.qbs
@@ -69,8 +69,6 @@ QtcPlugin {
         "debuggerstreamops.cpp",
         "debuggerstreamops.h",
         "debuggerstringutils.h",
-        "debuggertoolchaincombobox.cpp",
-        "debuggertoolchaincombobox.h",
         "debuggertooltipmanager.cpp",
         "debuggertooltipmanager.h",
         "disassembleragent.cpp",
diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp
index 8ac8debb4ac3e2d09c434605379a80fb5a1b0ddb..b3cf1489f879e65ed4e716e7d28c102e0dc4ec6c 100644
--- a/src/plugins/debugger/debuggerdialogs.cpp
+++ b/src/plugins/debugger/debuggerdialogs.cpp
@@ -36,12 +36,12 @@
 #include "debuggerconstants.h"
 #include "debuggerprofileinformation.h"
 #include "debuggerstringutils.h"
-#include "debuggertoolchaincombobox.h"
 #include "cdb/cdbengine.h"
 #include "shared/hostutils.h"
 
 #include <coreplugin/icore.h>
 #include <projectexplorer/abi.h>
+#include <projectexplorer/profilechooser.h>
 #include <projectexplorer/profileinformation.h>
 #include <utils/filterlineedit.h>
 #include <utils/historycompleter.h>
@@ -196,7 +196,7 @@ public:
     QLabel *coreLabel;
     Utils::PathChooser *coreFileName;
     QLabel *profileLabel;
-    Debugger::ProfileChooser *profileComboBox;
+    ProfileChooser *profileComboBox;
     Utils::PathChooser *overrideStartScriptFileName;
     QLabel *overrideStartScriptLabel;
     QDialogButtonBox *buttonBox;
@@ -226,7 +226,7 @@ AttachCoreDialog::AttachCoreDialog(QWidget *parent)
     d->overrideStartScriptLabel = new QLabel(tr("Override &start script:"), this);
     d->overrideStartScriptLabel->setBuddy(d->overrideStartScriptFileName);
 
-    d->profileComboBox = new Debugger::ProfileChooser(this);
+    d->profileComboBox = new ProfileChooser(this);
     d->profileComboBox->init(false);
     d->profileLabel = new QLabel(tr("&Target:"), this);
     d->profileLabel->setBuddy(d->profileComboBox);
@@ -337,7 +337,7 @@ public:
     QLineEdit *pidLineEdit;
     Utils::FilterLineEdit *filterWidget;
     QLabel *profileLabel;
-    Debugger::ProfileChooser *profileComboBox;
+    ProfileChooser *profileComboBox;
     QTreeView *procView;
     QDialogButtonBox *buttonBox;
 
@@ -364,7 +364,7 @@ AttachExternalDialog::AttachExternalDialog(QWidget *parent)
     d->filterWidget = new Utils::FilterLineEdit(this);
     d->filterWidget->setFocus(Qt::TabFocusReason);
 
-    d->profileComboBox = new Debugger::ProfileChooser(this);
+    d->profileComboBox = new ProfileChooser(this);
     d->profileComboBox->init(true);
     d->profileLabel = new QLabel(tr("&Target:"), this);
     d->profileLabel->setBuddy(d->profileComboBox);
@@ -621,7 +621,7 @@ public:
     QLabel *workingDirectoryLabel;
     Utils::PathChooser *workingDirectory;
     QLabel *profileLabel;
-    Debugger::ProfileChooser *profileChooser;
+    ProfileChooser *profileChooser;
     QLabel *breakAtMainLabel;
     QCheckBox *breakAtMainCheckBox;
     QLabel *historyLabel;
@@ -664,7 +664,7 @@ StartExternalDialog::StartExternalDialog(QWidget *parent)
     d->runInTerminalLabel = new QLabel(tr("Run in &terminal:"), this);
     d->runInTerminalLabel->setBuddy(d->runInTerminalCheckBox);
 
-    d->profileChooser = new Debugger::ProfileChooser(this);
+    d->profileChooser = new ProfileChooser(this);
     d->profileChooser->init(true);
     d->profileLabel = new QLabel(tr("&Target:"), this);
     d->profileLabel->setBuddy(d->profileChooser);
@@ -963,7 +963,7 @@ class StartRemoteDialogPrivate
 {
 public:
     QLabel *profileLabel;
-    Debugger::ProfileChooser *profileChooser;
+    ProfileChooser *profileChooser;
     QLabel *executableLabel;
     Utils::PathChooser *executablePathChooser;
     QLabel *channelLabel;
@@ -990,7 +990,7 @@ StartRemoteDialog::StartRemoteDialog(QWidget *parent, bool enableStartScript)
     setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
     setWindowTitle(tr("Start Debugger"));
 
-    d->profileChooser = new Debugger::ProfileChooser(this);
+    d->profileChooser = new ProfileChooser(this);
     d->profileChooser->init(false);
     d->profileLabel = new QLabel(tr("Target:"), this);
     d->profileLabel->setBuddy(d->profileChooser);
@@ -1210,7 +1210,7 @@ public:
     QLabel *portLabel;
     QSpinBox *portSpinBox;
     QLabel *profileLabel;
-    Debugger::ProfileChooser *profileChooser;
+    ProfileChooser *profileChooser;
 };
 
 AttachToQmlPortDialog::AttachToQmlPortDialog(QWidget *parent)
@@ -1220,7 +1220,7 @@ AttachToQmlPortDialog::AttachToQmlPortDialog(QWidget *parent)
     setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
     setWindowTitle(tr("Start Debugger"));
 
-    d->profileChooser = new Debugger::ProfileChooser(this);
+    d->profileChooser = new ProfileChooser(this);
     d->profileLabel = new QLabel(tr("Target:"), this);
     d->profileLabel->setBuddy(d->profileChooser);
 
diff --git a/src/plugins/debugger/loadremotecoredialog.cpp b/src/plugins/debugger/loadremotecoredialog.cpp
index 259d286747e796fcb5cb4580bd6a72a31ba63694..e0158db7816b176618529ddc16b2c5efbdeed580 100644
--- a/src/plugins/debugger/loadremotecoredialog.cpp
+++ b/src/plugins/debugger/loadremotecoredialog.cpp
@@ -35,10 +35,10 @@
 #include "debuggerconstants.h"
 #include "debuggercore.h"
 #include "debuggerstartparameters.h"
-#include "debuggertoolchaincombobox.h"
 
 #include <coreplugin/icore.h>
 #include <projectexplorer/abi.h>
+#include <projectexplorer/profilechooser.h>
 #include <projectexplorer/devicesupport/devicemanager.h>
 #include <projectexplorer/devicesupport/devicemanagermodel.h>
 #include <ssh/sshconnection.h>
@@ -96,7 +96,7 @@ public:
     QTextBrowser *textBrowser;
     QPushButton *closeButton;
     //PathChooser *sysrootPathChooser;
-    ProfileChooser *toolchainComboBox;
+    ProfileChooser *profileChooser;
 
     QSettings *settings;
     QString remoteCommandLine;
@@ -116,7 +116,7 @@ LoadRemoteCoreFileDialog::LoadRemoteCoreFileDialog(QWidget *parent)
 
     d->deviceComboBox = new QComboBox(this);
 
-    d->toolchainComboBox = new ProfileChooser(this);
+    d->profileChooser = new ProfileChooser(this);
     d->fileSystemModel = new SftpFileSystemModel(this);
 
     //executablePathChooser = new PathChooser(q);
@@ -142,7 +142,7 @@ LoadRemoteCoreFileDialog::LoadRemoteCoreFileDialog(QWidget *parent)
 
     QFormLayout *formLayout = new QFormLayout();
     formLayout->addRow(tr("Device:"), d->deviceComboBox);
-    formLayout->addRow(tr("Profile:"), d->toolchainComboBox);
+    formLayout->addRow(tr("Profile:"), d->profileChooser);
 
     QHBoxLayout *horizontalLayout2 = new QHBoxLayout();
     horizontalLayout2->addStretch(1);
@@ -168,7 +168,7 @@ LoadRemoteCoreFileDialog::LoadRemoteCoreFileDialog(QWidget *parent)
         connect(d->fileSystemView->selectionModel(),
             SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
             SLOT(updateButtons()));
-        connect(d->toolchainComboBox, SIGNAL(activated(int)), SLOT(updateButtons()));
+        connect(d->profileChooser, SIGNAL(activated(int)), SLOT(updateButtons()));
         connect(d->loadCoreFileButton, SIGNAL(clicked()), SLOT(selectCoreFile()));
         connect(d->deviceComboBox, SIGNAL(currentIndexChanged(int)),
             SLOT(attachToDevice(int)));
@@ -194,7 +194,7 @@ QString LoadRemoteCoreFileDialog::localCoreFileName() const
 
 Id LoadRemoteCoreFileDialog::profileId() const
 {
-    return d->toolchainComboBox->currentProfileId();
+    return d->profileChooser->currentProfileId();
 }
 
 void LoadRemoteCoreFileDialog::attachToDevice(int modelIndex)
@@ -250,7 +250,7 @@ void LoadRemoteCoreFileDialog::selectCoreFile()
     d->fileSystemView->setEnabled(false);
 
     d->settings->setValue(QLatin1String("LastProfile"),
-        d->toolchainComboBox->currentProfileId().toString());
+        d->profileChooser->currentProfileId().toString());
     d->settings->setValue(QLatin1String("LastDevice"), d->deviceComboBox->currentIndex());
     d->settings->setValue(QLatin1String("LastSftpRoot"), d->fileSystemModel->rootDirectory());
 
diff --git a/src/plugins/debugger/debuggertoolchaincombobox.cpp b/src/plugins/projectexplorer/profilechooser.cpp
similarity index 77%
rename from src/plugins/debugger/debuggertoolchaincombobox.cpp
rename to src/plugins/projectexplorer/profilechooser.cpp
index 169a817d2200756096781d6ad92dc237d8f8c999..4fbeea2697238a2343c6746c6e67c9fba22e401f 100644
--- a/src/plugins/debugger/debuggertoolchaincombobox.cpp
+++ b/src/plugins/projectexplorer/profilechooser.cpp
@@ -30,13 +30,12 @@
 **
 **************************************************************************/
 
-#include "debuggertoolchaincombobox.h"
+#include "profilechooser.h"
 
-#include "debuggerprofileinformation.h"
+#include "profileinformation.h"
+#include "profilemanager.h"
+#include "abi.h"
 
-#include <projectexplorer/profileinformation.h>
-#include <projectexplorer/profilemanager.h>
-#include <projectexplorer/abi.h>
 #include <utils/qtcassert.h>
 
 #include <QFileInfo>
@@ -44,9 +43,7 @@
 #include <QPair>
 #include <QtEvents>
 
-using namespace ProjectExplorer;
-
-namespace Debugger {
+namespace ProjectExplorer {
 
 ProfileChooser::ProfileChooser(QWidget *parent) :
     QComboBox(parent)
@@ -56,29 +53,26 @@ ProfileChooser::ProfileChooser(QWidget *parent) :
 void ProfileChooser::init(bool hostAbiOnly)
 {
     const Abi hostAbi = Abi::hostAbi();
-    foreach (const Profile *st, ProfileManager::instance()->profiles()) {
-        if (!st->isValid())
+    foreach (const Profile *profile, ProfileManager::instance()->profiles()) {
+        if (!profile->isValid())
             continue;
-        ToolChain *tc = ToolChainProfileInformation::toolChain(st);
+        ToolChain *tc = ToolChainProfileInformation::toolChain(profile);
         if (!tc)
             continue;
         const Abi abi = tc->targetAbi();
         if (hostAbiOnly && hostAbi.os() != abi.os())
             continue;
 
-        const QString debuggerCommand = DebuggerProfileInformation::debuggerCommand(st).toString();
-        if (debuggerCommand.isEmpty())
-            continue;
-
+        const QString debuggerCommand = profile->value(Core::Id("Debugger.Information")).toString();
         const QString completeBase = QFileInfo(debuggerCommand).completeBaseName();
-        const QString name = tr("%1 (%2)").arg(st->displayName(), completeBase);
-        addItem(name, qVariantFromValue(st->id()));
+        const QString name = tr("%1 (%2)").arg(profile->displayName(), completeBase);
+        addItem(name, qVariantFromValue(profile->id()));
         QString debugger = QDir::toNativeSeparators(debuggerCommand);
         debugger.replace(QString(QLatin1Char(' ')), QLatin1String("&nbsp;"));
         QString toolTip = tr("<html><head/><body><table>"
             "<tr><td>ABI:</td><td><i>%1</i></td></tr>"
             "<tr><td>Debugger:</td><td>%2</td></tr>")
-                .arg(st->displayName(), QDir::toNativeSeparators(debugger));
+                .arg(profile->displayName(), QDir::toNativeSeparators(debugger));
         setItemData(count() - 1, toolTip, Qt::ToolTipRole);
     }
     setEnabled(count() > 1);
@@ -110,4 +104,4 @@ Profile *ProfileChooser::profileAt(int index) const
     return ProfileManager::instance()->find(id);
 }
 
-} // namespace Debugger
+} // namespace ProjectExplorer
diff --git a/src/plugins/debugger/debuggertoolchaincombobox.h b/src/plugins/projectexplorer/profilechooser.h
similarity index 79%
rename from src/plugins/debugger/debuggertoolchaincombobox.h
rename to src/plugins/projectexplorer/profilechooser.h
index 164f5b11aee1615765e65a8204182d7ca7b0d27a..69311af5ee210425319793345421501a331aa431 100644
--- a/src/plugins/debugger/debuggertoolchaincombobox.h
+++ b/src/plugins/projectexplorer/profilechooser.h
@@ -30,20 +30,21 @@
 **
 **************************************************************************/
 
-#ifndef DEBUGGERTOOLCHAINCOMBOBOX_H
-#define DEBUGGERTOOLCHAINCOMBOBOX_H
+#ifndef PROJECTEXPLORER_PROFILECHOOSER_H
+#define PROJECTEXPLORER_PROFILECHOOSER_H
 
-#include "debugger_global.h"
+#include "projectexplorer_export.h"
 
 #include <QComboBox>
 
 namespace Core { class Id; }
-namespace ProjectExplorer { class Profile; }
 
-namespace Debugger {
+namespace ProjectExplorer {
+
+class Profile;
 
 // Let the user pick a profile.
-class DEBUGGER_EXPORT ProfileChooser : public QComboBox
+class PROJECTEXPLORER_EXPORT ProfileChooser : public QComboBox
 {
     Q_OBJECT
 
@@ -55,12 +56,12 @@ public:
     void setCurrentProfileId(Core::Id id);
     Core::Id currentProfileId() const;
 
-    ProjectExplorer::Profile *currentProfile() const;
+    Profile *currentProfile() const;
 
 private:
-    ProjectExplorer::Profile *profileAt(int index) const;
+    Profile *profileAt(int index) const;
 };
 
-} // namespace Debugger
+} // namespace ProjectExplorer
 
-#endif // DEBUGGERTOOLCHAINCOMBOBOX_H
+#endif // PROJECTEXPLORER_PROFILECHOOSER_H
diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro
index 9f8c632f53d51dc010b7496d5e1cfe8eb028e02c..3fbbf4091e2219912da02312eb3c6a327fdb48f6 100644
--- a/src/plugins/projectexplorer/projectexplorer.pro
+++ b/src/plugins/projectexplorer/projectexplorer.pro
@@ -21,6 +21,7 @@ HEADERS += projectexplorer.h \
     projectexplorer_export.h \
     projectwindow.h \
     profile.h \
+    profilechooser.h \
     profileconfigwidget.h \
     profileinformation.h \
     profileinformationconfigwidget.h \
@@ -131,6 +132,7 @@ SOURCES += projectexplorer.cpp \
     gcctoolchain.cpp \
     projectwindow.cpp \
     profile.cpp \
+    profilechooser.cpp \
     profileinformation.cpp \
     profileinformationconfigwidget.cpp \
     profilemanager.cpp \
diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs
index f5684dc47809f2d20c79dc1c9d587e7c8c169b0e..f81ea1d2c2ddde9641f8010e182e8fa03514a33a 100644
--- a/src/plugins/projectexplorer/projectexplorer.qbs
+++ b/src/plugins/projectexplorer/projectexplorer.qbs
@@ -110,6 +110,8 @@ QtcPlugin {
         "processstep.h",
         "profile.cpp",
         "profile.h",
+        "profilechooser.cpp",
+        "profilechooser.h",
         "profileconfigwidget.h",
         "profileinformation.cpp",
         "profileinformation.h",
diff --git a/src/plugins/remotelinux/startgdbserverdialog.cpp b/src/plugins/remotelinux/startgdbserverdialog.cpp
index 41b1a307ea2b577fc78dc815f18bd72f480a3893..825541936c6b30da4f251a291b0b3576e2da5bbd 100644
--- a/src/plugins/remotelinux/startgdbserverdialog.cpp
+++ b/src/plugins/remotelinux/startgdbserverdialog.cpp
@@ -37,8 +37,8 @@
 #include "remotelinuxusedportsgatherer.h"
 
 #include <coreplugin/icore.h>
-#include <debugger/debuggertoolchaincombobox.h>
 #include <extensionsystem/pluginmanager.h>
+#include <projectexplorer/profilechooser.h>
 #include <projectexplorer/devicesupport/devicemanager.h>
 #include <projectexplorer/devicesupport/devicemanagermodel.h>
 #include <utils/pathchooser.h>
@@ -105,7 +105,7 @@ public:
     QPushButton *attachProcessButton;
     QTextBrowser *textBrowser;
     QPushButton *closeButton;
-    Debugger::ProfileChooser *profileChooser;
+    ProfileChooser *profileChooser;
 
     RemoteLinuxUsedPortsGatherer gatherer;
     SshRemoteProcessRunner runner;
@@ -121,7 +121,7 @@ StartGdbServerDialogPrivate::StartGdbServerDialogPrivate(StartGdbServerDialog *q
 
     deviceComboBox = new QComboBox(q);
 
-    profileChooser = new Debugger::ProfileChooser(q);
+    profileChooser = new ProfileChooser(q);
 //    sysrootPathChooser = new PathChooser(q);
 //    sysrootPathChooser->setExpectedKind(PathChooser::Directory);
 //    sysrootPathChooser->setPromptDialogTitle(StartGdbServerDialog::tr("Select Sysroot"));