diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp
index 22d766ac38767378421b46b38033219712242c8f..8ac8debb4ac3e2d09c434605379a80fb5a1b0ddb 100644
--- a/src/plugins/debugger/debuggerdialogs.cpp
+++ b/src/plugins/debugger/debuggerdialogs.cpp
@@ -914,7 +914,7 @@ bool operator!=(const StartRemoteParameters &p1, const StartRemoteParameters &p2
 }
 
 StartRemoteParameters::StartRemoteParameters() :
-    useServerStartScript(false), profileId(0)
+    useServerStartScript(false)
 {
 }
 
@@ -945,7 +945,12 @@ void StartRemoteParameters::fromSettings(const QSettings *settings)
 {
     remoteChannel = settings->value(_("LastRemoteChannel")).toString();
     localExecutable = settings->value(_("LastLocalExecutable")).toString();
-    profileId = Core::Id(settings->value(_("LastProfileId")).toString());
+    const QString profileIdString = settings->value(_("LastProfileId")).toString();
+    if (profileIdString.isEmpty()) {
+        profileId = Core::Id();
+    } else {
+        profileId = Core::Id(profileIdString);
+    }
     remoteArchitecture = settings->value(_("LastRemoteArchitecture")).toString();
     serverStartScript = settings->value(_("LastServerStartScript")).toString();
     useServerStartScript = settings->value(_("LastUseServerStartScript")).toBool();