diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
index 0c0f73d7a281223eb94ac9788c9e8a4c85598e47..4f0bfac541087d55883cb1ec360efa2dc267db8f 100644
--- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
@@ -70,6 +70,15 @@ const char DefaultDevicesKey[] = "DefaultDevices";
 class DeviceManagerPrivate
 {
 public:
+    int indexForId(Core::Id id) const
+    {
+        for (int i = 0; i < devices.count(); ++i) {
+            if (devices.at(i)->id() == id)
+                return i;
+        }
+        return -1;
+    }
+
     static DeviceManager *clonedInstance;
     QList<IDevice::Ptr> devices;
     QList<IDevice::Ptr> inactiveAutoDetectedDevices;
@@ -223,7 +232,7 @@ void DeviceManager::addDevice(const IDevice::Ptr &_device)
     QTC_ASSERT(this != instance() || device->isAutoDetected(), return);
 
     QString name = device->displayName();
-    const int pos = indexForId(device->id());
+    const int pos = d->indexForId(device->id());
     if (pos >= 0) {
         device->setDisplayName(QString()); // For name uniquification to work.
         d->devices[pos] = device;
@@ -272,7 +281,7 @@ void DeviceManager::removeDevice(Core::Id id)
 
     const bool wasDefault = d->defaultDevices.value(device->type()) == device->id();
     const Core::Id deviceType = device->type();
-    d->devices.removeAt(indexForId(id));
+    d->devices.removeAt(d->indexForId(id));
     emit deviceRemoved(device->id());
 
     if (wasDefault) {
@@ -342,7 +351,7 @@ IDevice::ConstPtr DeviceManager::deviceAt(int idx) const
 
 IDevice::Ptr DeviceManager::mutableDevice(Core::Id id) const
 {
-    const int index = indexForId(id);
+    const int index = d->indexForId(id);
     return index == -1 ? IDevice::Ptr() : d->devices.at(index);
 }
 
@@ -357,7 +366,7 @@ bool DeviceManager::hasDevice(const QString &name) const
 
 IDevice::ConstPtr DeviceManager::find(Core::Id id) const
 {
-    const int index = indexForId(id);
+    const int index = d->indexForId(id);
     return index == -1 ? IDevice::ConstPtr() : deviceAt(index);
 }
 
@@ -374,25 +383,11 @@ IDevice::ConstPtr DeviceManager::defaultDevice(Core::Id deviceType) const
     return find(id);
 }
 
-int DeviceManager::indexForId(Core::Id id) const
-{
-    for (int i = 0; i < d->devices.count(); ++i) {
-        if (deviceAt(i)->id() == id)
-            return i;
-    }
-    return -1;
-}
-
 Core::Id DeviceManager::deviceId(const IDevice::ConstPtr &device) const
 {
     return device ? device->id() : IDevice::invalidId();
 }
 
-int DeviceManager::indexOf(const IDevice::ConstPtr &device) const
-{
-    return indexForId(device->id());
-}
-
 void DeviceManager::ensureOneDefaultDevicePerType()
 {
     foreach (const IDevice::Ptr &device, d->devices) {
diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.h b/src/plugins/projectexplorer/devicesupport/devicemanager.h
index 141cd9bde64ea6aee4207b3b12ef4930f08e5c17..e9a913ef3147b07a3b5cc2fd6099dcf7da587855 100644
--- a/src/plugins/projectexplorer/devicesupport/devicemanager.h
+++ b/src/plugins/projectexplorer/devicesupport/devicemanager.h
@@ -67,9 +67,6 @@ public:
     bool hasDevice(const QString &name) const;
     Core::Id deviceId(const IDevice::ConstPtr &device) const;
 
-    int indexForId(Core::Id id) const;
-    int indexOf(const IDevice::ConstPtr &device) const;
-
     void addDevice(const IDevice::Ptr &device);
     void removeDevice(Core::Id id);
 
diff --git a/src/plugins/projectexplorer/devicesupport/devicemanagermodel.h b/src/plugins/projectexplorer/devicesupport/devicemanagermodel.h
index 3317fb5110ccbe394df4b1ff1e351fe649ebcd4b..bc4eeb827d84ddb1ce830875a99c10723657c13e 100644
--- a/src/plugins/projectexplorer/devicesupport/devicemanagermodel.h
+++ b/src/plugins/projectexplorer/devicesupport/devicemanagermodel.h
@@ -56,6 +56,7 @@ public:
     IDevice::ConstPtr device(int pos) const;
     Core::Id deviceId(int pos) const;
     int indexOf(IDevice::ConstPtr dev) const;
+    int indexForId(Core::Id id) const;
     int rowCount(const QModelIndex &parent = QModelIndex()) const;
 
 private slots:
@@ -67,8 +68,6 @@ private slots:
 private:
     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
 
-    int indexForId(Core::Id id) const;
-
     Internal::DeviceManagerModelPrivate * const d;
 };
 
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
index 0140a3024b5384356ea12a523dbd0f66c17373a0..7605178354019df583f42f11c76cbe7560c8e45a 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp
@@ -271,7 +271,7 @@ void DeviceSettingsWidget::setDefaultDevice()
 
 void DeviceSettingsWidget::handleDeviceUpdated(Id id)
 {
-    const int index = m_deviceManager->indexForId(id);
+    const int index = m_deviceManagerModel->indexForId(id);
     if (index == currentIndex())
         currentDeviceChanged(index);
 }