diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc
index 512d8a6..0b3a40b 100644
--- a/src/MissionManager/MissionController.cc
+++ b/src/MissionManager/MissionController.cc
@@ -1293,8 +1293,8 @@ void MissionController::_initAllVisualItems(void)
         _settingsItem->setIsCurrentItem(true);
     }
 
-    if (!_editMode && _controllerVehicle) {
-        _settingsItem->setCoordinate(_controllerVehicle->homePosition());
+    if (!_editMode && _managerVehicle->homePosition().isValid()) {
+        _settingsItem->setCoordinate(_managerVehicle->homePosition());
     }
 
     connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &MissionController::_recalcAll);
@@ -1481,6 +1481,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo
 {
     MissionSettingsItem* settingsItem = new MissionSettingsItem(_controllerVehicle, visualItems);
 
+    qCDebug(MissionControllerLog) << "_addMissionSettings addToCenter" << addToCenter;
+
     visualItems->insert(0, settingsItem);
 
     if (addToCenter) {
@@ -1515,8 +1517,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo
                 settingsItem->setCoordinate(QGeoCoordinate((south + ((north - south) / 2)) - 90.0, (west + ((east - west) / 2)) - 180.0, 0.0));
             }
         }
-    } else {
-        settingsItem->setCoordinate(_controllerVehicle->homePosition());
+    } else if (_managerVehicle->homePosition().isValid()) {
+        settingsItem->setCoordinate(_managerVehicle->homePosition());
     }
 }
 
diff --git a/src/MissionManager/MissionSettingsItem.cc b/src/MissionManager/MissionSettingsItem.cc
index 67072b7..858b58f 100644
--- a/src/MissionManager/MissionSettingsItem.cc
+++ b/src/MissionManager/MissionSettingsItem.cc
@@ -221,7 +221,7 @@ void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate)
 {
     if (_plannedHomePositionCoordinate != coordinate) {
         // ArduPilot tends to send crap home positions at initial vehicel boot, discard them
-        if (coordinate.latitude() != 0 || coordinate.longitude() != 0) {
+        if (coordinate.isValid() && (coordinate.latitude() != 0 || coordinate.longitude() != 0)) {
             qDebug() << "Setting home position" << coordinate;
             _plannedHomePositionCoordinate = coordinate;
             emit coordinateChanged(coordinate);