diff --git a/ArduPlane/events.cpp b/ArduPlane/events.cpp
index a4fbb525f565b4ef5e45741e252669f2e1d844a1..0c92ed971fd50e8e4e57e18ec869f879b5aa158a 100644
--- a/ArduPlane/events.cpp
+++ b/ArduPlane/events.cpp
@@ -159,11 +159,13 @@ void Plane::low_battery_event(void)
                       (double)battery.voltage(), (double)battery.current_total_mah());
     if (flight_stage != AP_Vehicle::FixedWing::FLIGHT_LAND) {
 #if AP_ACS_USE == TRUE
-        gcs().send_text_P(MAV_SEVERITY_CRITICAL,PSTR("Battery low: auto-landing."));
+        if (! acs.preland_started()) {
+            gcs().send_text_P(MAV_SEVERITY_CRITICAL,PSTR("Battery low: auto-landing."));
 
-        //start landing if not already (ACS-specific behavior -- land vice RTL)
-        if (! jump_to_landing_sequence()) {
-            gcs_send_text_P(MAV_SEVERITY_CRITICAL,PSTR("Failed to start emergency land sequence!!"));
+            //start landing if not already (ACS-specific behavior -- land vice RTL)
+            if (! jump_to_landing_sequence()) {
+                gcs().send_text_P(MAV_SEVERITY_CRITICAL,PSTR("Failed to start emergency land sequence!!"));
+            }
         }
 #else
     	set_mode(RTL, MODE_REASON_BATTERY_FAILSAFE);