diff --git a/src/modules/mavlink/mavlink_mission.cpp b/src/modules/mavlink/mavlink_mission.cpp
index 832bb4dc5273e139834a3c8dc3d578fb91a6c238..976076e73ec820aaf56e7a9cb46ff15c390276ec 100644
--- a/src/modules/mavlink/mavlink_mission.cpp
+++ b/src/modules/mavlink/mavlink_mission.cpp
@@ -346,6 +346,9 @@ MavlinkMissionManager::send(const hrt_abstime now)
 
 		_state = MAVLINK_WPM_STATE_IDLE;
 
+		// since we are giving up, reset this state also, so another request can be started.
+		_transfer_in_progress = false;
+
 	} else if (_state == MAVLINK_WPM_STATE_GETLIST && hrt_elapsed_time(&_time_last_sent) > _retry_timeout) {
 		/* try to request item again after timeout */
 		send_mission_request(_transfer_partner_sysid, _transfer_partner_compid, _transfer_seq);