diff --git a/src/plugins/remotelinux/devicemanagermodel.cpp b/src/plugins/remotelinux/devicemanagermodel.cpp
index 3bfb8f61cf241536c58a93440a640fc7811cc049..0d447c120b9b73b1d3b3365a4cf2a2366335cc56 100644
--- a/src/plugins/remotelinux/devicemanagermodel.cpp
+++ b/src/plugins/remotelinux/devicemanagermodel.cpp
@@ -56,6 +56,7 @@ DeviceManagerModel::DeviceManagerModel(const LinuxDeviceConfigurations *deviceMa
         SLOT(handleDeviceAdded(QSharedPointer<const LinuxDeviceConfiguration>)));
     connect(deviceManager, SIGNAL(deviceRemoved(int)), SLOT(handleDeviceRemoved(int)));
     connect(deviceManager, SIGNAL(displayNameChanged(int)), SLOT(handleDataChanged(int)));
+    connect(deviceManager, SIGNAL(defaultStatusChanged(int)), SLOT(handleDataChanged(int)));
     connect(deviceManager, SIGNAL(deviceListChanged()), SLOT(handleDeviceListChanged()));
 }
 
diff --git a/src/plugins/remotelinux/linuxdeviceconfigurations.cpp b/src/plugins/remotelinux/linuxdeviceconfigurations.cpp
index 1112bb6e0b08ff16b57fbc3af4ecceb4dae5b78f..ad4541ceb73adf5c7f00318f87a7efc5eaf146de 100644
--- a/src/plugins/remotelinux/linuxdeviceconfigurations.cpp
+++ b/src/plugins/remotelinux/linuxdeviceconfigurations.cpp
@@ -362,7 +362,7 @@ LinuxDeviceConfiguration::Id LinuxDeviceConfigurations::unusedId() const
 {
     typedef LinuxDeviceConfiguration::Id IdType;
     for (IdType id = 0; id <= std::numeric_limits<IdType>::max(); ++id) {
-        if (!find(id))
+        if (id != LinuxDeviceConfiguration::InvalidId && !find(id))
             return id;
     }
     QTC_CHECK(false);